PHP code example of andrey-helldar / laravel-roles
1. Go to this page and download the library: Download andrey-helldar/laravel-roles 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/ */
andrey-helldar / laravel-roles example snippets
use Illuminate\Foundation\Auth\User as Authenticatable;
use Helldar\Roles\Traits\HasRoles;
class User extends Authenticatable
{
use HasRoles;
// ...
}
use Helldar\Roles\Http\Middleware\Permission;
use Helldar\Roles\Http\Middleware\Permissions;
use Helldar\Roles\Http\Middleware\Role;
use Helldar\Roles\Http\Middleware\Roles;
protected $routeMiddleware = [
// ...
'role' => Role::class, // Checks for the entry of one of the specified permissions.
'roles' => Roles::class, // Checks the entry of all of the specified permissions.
'permission' => Permission::class, // Checks for the occurrence of one of the specified roles.
'permissions' => Permissions::class, // Checks the entry of all of the specified roles.
]
// Example, user has been a `foo` role and a `baz` permission
// success access
app('router')
->middleware('role:foo,bar', 'permission:foo,bar')
->get(...)
// success access
app('router')
->middleware('role:foo,bar')
->get(...)
// failed access
app('router')
->middleware('permission:foo,bar')
->get(...)
// Example, user has been a `foo` role and a `baz` permission
// failed access
app('router')
->middleware('roles:foo,bar', 'permissions:foo,bar')
->get(...)
// failed access
app('router')
->middleware('roles:foo,bar')
->get(...)
// success access
app('router')
->middleware('roles:foo')
->get(...)
// failed access
app('router')
->middleware('permissions:foo,bar')
->get(...)
// success access
app('router')
->middleware('permissions:baz')
->get(...)
use Helldar\Roles\Models\Role;
use Helldar\Roles\Models\Permission;
$role = Role::create(['slug' => 'admin']);
$permission = Permission::create(['slug' => 'update']);
$role->assignPermission($permission);
// or
$user = User::find(1);
$role = $user->createRole('Mega Admin'); // creating Role instance with "mega_admin" slug and "Mega_Admin" title.
$role = $user->createRole('Mega Admin', 'Mega Admin'); // creating Role instance with "mega_admin" slug and "Mega Admin" title.
$role = $user->createRole('Mega Admin', 'Mega Admin', true); // creating Role instance with "mega_admin" slug and "Mega Admin" title and `is_root` role.
$role->createPermission('Post edit'); // creating Permission instance with "post_edit" slug and "Post_Edit" title.
$role->createPermission('Post edit', 'Post edit'); // creating Permission instance with "post_edit" slug and "Post edit" title.
use \Helldar\Roles\Models\Role;
use \Helldar\Roles\Models\Permission;
// For User
$user->assignRole('role_slug');
$user->assignRole(Role::find(1));
$user->assignRole(1);
$user->assignRoles($role_1, 'role_slug_2', 3, ...);
// Adds to the user the role specified in the `default_role`
// parameter of the `config/roles.php` file.
// If `null`, then no addition will be made.
$user->assignDefaultRole();
$user->assignPermission('permission_slug');
$user->assignPermission(Permission::find(1));
$user->assignPermission(1);
$user->assignPermissions($permission_1, 'permission_2', 3, ...);
// For Role
use \Helldar\Roles\Models\Permission;
$role->assignPermission('permission_slug');
$role->assignPermission(Permission::find(1));
$role->assignPermission(1);
$role->assignPermissions($permission_1, 'permission_2', 3, ...);
// For Permission
use \Helldar\Roles\Models\Role;
$permission->assignRole('role_slug');
$permission->assignRole(Role::find(1));
$permission->assignRole(1);
$permission->assignRoles($role_1, 'role_2', 3, ...);
use \Helldar\Roles\Models\Role;
use \Helldar\Roles\Models\Permission;
// For User
$user->revokeRole('role_slug');
$user->revokeRole(Role::find(1));
$user->revokeRole(1);
$user->revokeRoles($role_1, 'role_slug_2', 3, ...);
$user->revokePermission('permission_slug');
$user->revokePermission(Permission::find(1));
$user->revokePermission(1);
$user->revokePermissions($permission_1, 'permission_2', 3, ...);
// For Role
use \Helldar\Roles\Models\Permission;
$role->revokePermission('permission_slug');
$role->revokePermission(Permission::find(1));
$role->revokePermission(1);
$role->revokePermissions($permission_1, 'permission_2', 3, ...);
// For Permission
use \Helldar\Roles\Models\Role;
$permission->revokeRole('role_slug');
$permission->revokeRole(Role::find(1));
$permission->revokeRole(1);
$permission->revokeRoles($role_1, 'role_2', 3, ...);
// For User
$user->syncRoles([1, 2, 3, ...]);
$user->syncPermissions([1, 2, 3, ...]);
// For Role
$role->syncPermissions([1, 2, 3, ...]);
// For Permission
$permission->syncRoles([1, 2, 3, ...]);
@can('permission_slug')
I can see this text
@endcan
@if(auth()->user()->can('permission_slug'))
I can see this text
@endif
@role('role_slug')
I can see this text
@endrole
@role(auth()->user()->hasRole('role_slug'))
I can see this text
@endrole
@roles('role_slug_1', 'role_slug_2', 'role_slug_3')
I can see this text
@endroles
@roles(auth()->user()->hasRole('role_slug'))
I can see this text
@endroles
@permission('permission_slug')
I can see this text
@endpermission
@permission(auth()->user()->hasPermission('permission_slug'))
I can see this text
@endpermission
@permissions('permission_slug_1', 'permission_slug_2', 'permission_slug_3')
I can see this text
@endpermissions
@permissions(auth()->user()->hasPermission('permission_slug'))
I can see this text
@endpermissions
$user = User::find(1);
// Checks if the user has at least one role with root access:
$user->hasRootRole(): bool
$user = User::find(1);
// with role slug:
$user->hasRole('role_slug'): bool
// with role ID:
$user->hasRole(1): bool
// with role instance:
$user->hasRole(Role::find(1)): bool
$user = User::find(1);
// with role slug:
$user->hasRoles('role_slug_1', 'role_slug_2'): bool
// with role slug as array:
$user->hasRoles(['role_slug_1', 'role_slug_2']): bool
// with role ID:
$user->hasRoles(1, 2, 3): bool
// with role instance:
$user->hasRoles(Role::find(1), Role::find(2)): bool
$user = User::find(1);
// with permission slug:
$user->hasPermission('permission_slug'): bool
// with permission ID:
$user->hasPermission(1): bool
// with permission instance:
$user->hasPermission(Permission::find(1)): bool
// If the `use_can_directive` option is set to true in the settings,
// then you can also check permissions through the `can` directive:
auth()->user()->can('permission_slug'): bool
$user = User::find(1);
// with permission slug:
$user->hasPermissions('permission_slug_1', 'permission_slug_1'): bool
// with permission slug as array:
$user->hasPermissions(['permission_slug_1', 'permission_slug_1']): bool
// with permission ID:
$user->hasPermissions(1, 2, 3): bool
// with permission ID as array:
$user->hasPermissions([1, 2, 3]): bool
// with permission instance:
$user->hasPermissions(Permission::find(1), Permission::find(2)): bool
// with permission instance as array:
$user->hasPermissions([Permission::find(1), Permission::find(2)]): bool
$role = Role::find(1);
// with permission slug:
$role->hasPermission('permission_slug'): bool
// with permission ID:
$role->hasPermission(1): bool
// with permission instance:
$role->hasPermission(Permission::find(1)): bool
// If the `use_can_directive` option is set to true in the settings,
// then you can also check permissions through the `can` directive:
auth()->user()->can('permission_slug'): bool
$role = Role::find(1);
// with permission slug:
$role->hasPermissions('permission_slug_1', 'permission_slug_1'): bool
// with permission slug as array:
$role->hasPermissions(['permission_slug_1', 'permission_slug_1']): bool
// with permission ID:
$role->hasPermissions(1, 2, 3): bool
// with permission ID as array:
$role->hasPermissions([1, 2, 3]): bool
// with permission instance:
$role->hasPermissions(Permission::find(1), Permission::find(2)): bool
// with permission instance as array:
$role->hasPermissions([Permission::find(1), Permission::find(2)]): bool