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