PHP code example of codesuab / laravel-permission

1. Go to this page and download the library: Download codesuab/laravel-permission 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/ */

    

codesuab / laravel-permission example snippets


use Codesuab\Permission\Traits\HasPermissions;
use Codesuab\Permission\Traits\HasTeams;

class User extends Authenticatable
{
    use HasPermissions, HasTeams;
}

use Codesuab\Permission\Models\Permission;
use Codesuab\Permission\Models\Role;

Permission::ensure('users.view');
Permission::crud('users');

Role::createRole('manager')->allow([
    'users.view', 'users.create', 'users.update',
]);

$user->assignRole('manager');
$user->givePermissionTo('reports.export');

$user->hasPermission('users.view');
$user->hasRole('manager');

Route::get('/users', ...)->can('users.view');
Route::get('/reports', ...)->canAll('reports.view', 'reports.export');
Route::get('/admin', ...)->role('admin');
Route::resource('users', UserController::class)->can('users');

Route::middleware('permission.team')->group(function () {
    Route::resource('/teams/{team}/users', TeamUserController::class)->can('users');
});

Route::middleware('permission.team')->get('/teams/{team}/dashboard', ...);

$this->authorize('users.update', $user);
Gate::allows('users.update', $user);

$this->authorize('update', $user); // checks users.update
$this->authorize('view', $user);   // checks users.view
$this->authorize('delete', $user); // checks users.delete

'policies' => [
    'map' => [App\\Models\\Invoice::class => 'billing.invoices'],
],

$team = Team::createTeam('Acme', $owner->id);
$owner->addToTeam($team);
$user->addToTeam($team);

$user->assignRole('manager', $team->id);
$user->givePermissionTo('billing.refund', $team->id);

app('permission')->team($team->id)->check($user, 'billing.refund');

use Codesuab\Permission\Support\AclMatrix;

$data = app(AclMatrix::class)->build($teamId);

app(AclMatrix::class)->sync(
    $role,
    ['users.view', 'users.update'],
    $teamId
);

app(AclMatrix::class)->set($role, 'users.delete', true, $teamId);

Role::createRole('manager')->allow('users.*');
Role::createRole('root')->allow('*');

'super_admin' => [
    'enabled' => true,
    'role' => 'super-admin',
],
bash
composer permission:install
php artisan migrate
php artisan permission:seed