PHP code example of syftnex / laravel-role-enums

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

    

syftnex / laravel-role-enums example snippets


return [
    'middleware_alias' => 'role',
    'default_column' => 'role',
    'directives' => [
        'role' => 'role',
        'unless_role' => 'unlessRole',
        'end_unless_role' => 'endUnlessRole',
    ],
    'enums' => [
        'platform' => \App\Enums\PlatformRole::class,
        'org' => \App\Enums\OrgRole::class,
    ],
];

Route::middleware('role:platform,super_admin')->group(function () {
    Route::get('/admin', AdminController::class);
});

Route::middleware('role:platform,admin,super_admin')->group(function () {
    Route::get('/ops', OpsController::class);
});

Route::middleware('role:org,owner,org_role')->group(function () {
    Route::resource('/projects', ProjectController::class);
});

Route::middleware('role.min:platform,admin')->group(function () {
    Route::get('/reports', ReportsController::class);
});

'directives' => [
    'role' => 'roleCheck',
    'unless_role' => 'unlessRoleCheck',
    'end_unless_role' => 'endUnlessRoleCheck',
],

use Syftnex\RoleEnums\Traits\HasRole;

class User extends Authenticatable
{
    use HasRole;

    protected array $roleColumns = [
        'platform' => 'platform_role',
    ];

    protected $casts = [
        'platform_role' => \App\Enums\PlatformRole::class,
    ];
}

$user->hasRole('platform', 'super_admin');
$user->getRole('platform');
$user->isAtLeastRole('platform', 'admin');

User::whereRole('platform', 'admin')->get();
User::whereNotRole('platform', 'viewer')->get();
User::whereAtLeastRole('platform', 'admin')->get();

use Syftnex\RoleEnums\Concerns\ProvidesOptions;
use Syftnex\RoleEnums\Contracts\HasOptions;

enum PlatformRole: string implements HasOptions
{
    use ProvidesOptions;

    case SuperAdmin = 'super_admin';
    case Admin = 'admin';
    case Viewer = 'viewer';
}

PlatformRole::options();
// ['super_admin' => 'Super Admin', 'admin' => 'Admin', 'viewer' => 'Viewer']
bash
php artisan vendor:publish --tag=role-enums