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