PHP code example of teksite / authorize
1. Go to this page and download the library: Download teksite/authorize library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
teksite / authorize example snippets
return [
/*
|--------------------------------------------------------------------------
| Boot Gates
|--------------------------------------------------------------------------
*/
'boot_gates' => true,
'boot_gates_in_console' => false,
/*
|--------------------------------------------------------------------------
| Cache
|--------------------------------------------------------------------------
*/
'cache_enabled' => true,
'cache_ttl' => 2,592,000,
/*
|--------------------------------------------------------------------------
| Super Admin
|--------------------------------------------------------------------------
*/
'super_admin_role' => 'administrator',
];
'boot_gates' => true,
'boot_gates_in_console' => false,
'cache_enabled' => true,
'cache_ttl' => 2,592,000,
'super_admin_role' => 'administrator',
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Teksite\Authorize\Traits\HasAuthorization;
class User extends Model
{
use HasAuthorization;
}
class Admin extends Model
{
use HasAuthorization;
}
class Customer extends Model
{
use HasAuthorization;
}
class Employee extends Model
{
use HasAuthorization;
}
use Teksite\Authorize\Models\Permission;
$permission = Permission::create([
'title' => 'posts.read',
'description' => 'Read posts',
]);
$permission = Permission::find(1);
$permission = Permission::where('title', 'posts.read')->first();
use Teksite\Authorize\Models\Role;
$role = Role::create([
'title' => 'editor',
'description' => 'Post editor',
'hierarchy' => 30,
]);
$role->permissions()->sync([
$permission->id,
]);
$role->permissions()->sync([
$readPermission->id,
$createPermission->id,
$updatePermission->id,
]);
$user->assignRole('editor');
$user->assignRole(1);
$user->assignRole($role);
$user->assignRole([
'editor',
'author',
]);
$user->assignRole('editor', false);
$user->syncPermissions('posts.delete');
$user->syncPermissions(5);
$user->syncPermissions($permission);
$user->syncPermissions([
'posts.read',
'posts.create',
'posts.update',
]);
$user->syncPermissions([
'posts.read',
'posts.create',
], false);
$user->hasRole('editor');
$user->hasRole(1);
$user->hasRole($role);
$user->hasRole([
'editor',
'author',
]);
$user->hasRole([
'editor',
'author',
], false);
$user->hasPermission('posts.read');
$user->hasPermission(1);
$user->hasPermission($permission);
$user->hasPermission([
'posts.read',
'posts.update',
]);
$user->hasPermission([
'posts.read',
'posts.update',
], false);
$user->getAllPermissions();
[
1,
2,
3,
]
$user->getAllPermissions(false);
[
1 => 'posts.read',
2 => 'posts.update',
3 => 'posts.delete',
]
$user->getDirectPermissions();
[
1 => 'posts.delete',
2 => 'users.read',
]
$user->getPermissionsByRoles();
[
'editor' => [
1 => 'posts.read',
2 => 'posts.create',
3 => 'posts.update',
],
]
$user->getDirectRoles(true);
[
1,
2,
]
$user->getDirectRoles();
[
1 => 'editor',
2 => 'author',
]
'super_admin_role' => 'administrator',
$user->hasRole('administrator');
$user->hasPermission('anything');
true
$user->isSuperAdmin();
Gate::allows('posts.read');
Gate::authorize('posts.update');
hasPermission()
Route::get('/posts', function () {
//
})->middleware('can:posts.read');
$user->hierarchy();
$user->hierarchy(false, true);
$user->hierarchy(false, true);
$user->hierarchy(false, true);
[
'min' => ...,
'max' => ...,
]
$user->canAccessModelByHierarchy($anotherUser);
true
false
null
HasAuthorization
$user->canAccessRoleByHierarchy('manager');
$user->canAccessRoleByHierarchy(2);
$user->canAccessRoleByHierarchy($role);
'cache_enabled' => true,
'cache_ttl' => 2,592,000,
$user->clearAuthorizationCache();
$user->warmAuthorizationCache();
$user->assignRole('editor');
$admin->assignRole('administrator');
$customer->syncPermissions('orders.read');
$employee->syncPermissions([
'reports.read',
'reports.create',
]);
$user->roles();
$user->permissions();
$role->permissions;
$permission->roles;
Permission::rules('create');
Permission::rules('update', $permission->id);
Role::rules('create');
Role::rules('update', $role->id);
Permission::factory()->create();
Permission::factory()->count(10)->create();
Role::factory()->create();
Role::factory()->count(5)->create();
use App\Models\User;
use Teksite\Authorize\Models\Permission;
use Teksite\Authorize\Models\Role;
$read = Permission::create([
'title' => 'posts.read',
]);
$create = Permission::create([
'title' => 'posts.create',
]);
$update = Permission::create([
'title' => 'posts.update',
]);
$editor = Role::create([
'title' => 'editor',
'description' => 'Can manage posts',
'hierarchy' => 40,
]);
$editor->permissions()->sync([
$read->id,
$create->id,
$update->id,
]);
$user = User::find(1);
$user->assignRole($editor);
$user->hasRole('editor');
$user->hasPermission('posts.read');
$user->getAllPermissions();
$user->syncPermissions([
'posts.read',
'posts.update',
]);
$user->hasPermission('posts.read');
true
$model->hasPermission('posts.update');
$role->permissions()->sync($permissionIds);
'boot_gates' => false,
hasPermission()
hasRole()
'cache_enabled' => false,
assignRole()
syncPermissions()
hasRole()
hasPermission()
getAllPermissions()
getDirectPermissions()
getPermissionsByRoles()
getDirectRoles()
isSuperAdmin()
hierarchy()
canAccessModelByHierarchy()
canAccessRoleByHierarchy()
clearAuthorizationCache()
warmAuthorizationCache()
roles()
permissions()
Permission::rules()
Permission::factory()
$permission->roles()
Role::rules()
Role::factory()
$role->permissions()
bash
php artisan authorize:install
bash
php artisan migrate
text
config/authorize.php
text
administrator
manager
editor
author
bash
php artisan authorize:install
text
create_permissions_table.php
create_roles_table.php
text
administrator
manager
editor
author
viewer