<?phprequire_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
aptcreativedesign / laravel-permission-mongodb example snippets
// Adding permissions to a user
$user->givePermissionTo('edit articles');
// Adding permissions via a role
$user->assignRole('writer');
$role->givePermissionTo('edit articles');
$user->can('edit articles');
return [
'models' => [
/*
* When using the "HasRoles" trait from this package, we need to know which
* Moloquent model should be used to retrieve your permissions. Of course, it
* is often just the "Permission" model but you may use whatever you like.
*
* The model you want to use as a Permission model needs to implement the
* `AptCD\Permission\Contracts\Permission` contract.
*/'permission' => AptCD\Permission\Models\Permission::class,
/*
* When using the "HasRoles" trait from this package, we need to know which
* Moloquent model should be used to retrieve your roles. Of course, it
* is often just the "Role" model but you may use whatever you like.
*
* The model you want to use as a Role model needs to implement the
* `AptCD\Permission\Contracts\Role` contract.
*/'role' => AptCD\Permission\Models\Role::class,
],
'collection_names' => [
/*
* When using the "HasRoles" trait from this package, we need to know which
* table should be used to retrieve your roles. We have chosen a basic
* default value but you may easily change it to any table you like.
*/'roles' => 'roles',
/*
* When using the "HasRoles" trait from this package, we need to know which
* table should be used to retrieve your permissions. We have chosen a basic
* default value but you may easily change it to any table you like.
*/'permissions' => 'permissions',
],
/*
* By default all permissions will be cached for 24 hours unless a permission or
* role is updated. Then the cache will be flushed immediately.
*/'cache_expiration_time' => 60 * 24,
/*
* By default we'll make an entry in the application log when the permissions
* could not be loaded. Normally this only occurs while installing the packages.
*
* If for some reason you want to disable that logging, set this value to false.
*/'log_registration_exception' => true,
/*
* When set to true, the
// get a list of all permissions directly assigned to the user
$permissions = $user->permissions; // Returns a collection// get all permissions inherited by the user via roles
$permissions = $user->getAllPermissions(); // Returns a collection// get all permissions names
$permissions = $user->getPermissionNames(); // Returns a collection// get a collection of all defined roles
$roles = $user->roles->pluck('name'); // Returns a collection// get all role names
$roles = $user->getRoleNames() // Returns a collection;
$users = User::role('writer')->get(); // Returns only users with the role 'writer'
$users = User::permission('edit articles')->get(); // Returns only users with the permission 'edit articles'
$user->givePermissionTo('edit articles');
// You can also give multiple permission at once
$user->givePermissionTo('edit articles', 'delete articles');
// You may also pass an array
$user->givePermissionTo(['edit articles', 'delete articles']);
$user->assignRole('writer');
// You can also assign multiple roles at once
$user->assignRole('writer', 'admin');
// or as an array
$user->assignRole(['writer', 'admin']);
$user->removeRole('writer');
// All current roles will be removed from the user and replaced by the array given
$user->syncRoles(['writer', 'admin']);
// Direct permissions
$user->getDirectPermissions() // Or $user->permissions;// Permissions inherited from the user's roles
$user->getPermissionsViaRoles();
// All permissions which apply on the user (inherited and direct)
$user->getAllPermissions();
@role('writer')
I am a writer!
@else
I am not a writer...
@endrole
@hasrole('writer')
I am a writer!
@else
I am not a writer...
@endhasrole
@hasanyrole(Role::all())
I have one or more of these roles!
@else
I have none of these roles...
@endhasanyrole
// or
@hasanyrole('writer|admin')
I am either a writer or an admin or both!
@else
I have none of these roles...
@endhasanyrole
@hasallroles(Role::all())
I have all of these roles!
@else
I do not have all of these roles...
@endhasallroles
// or
@hasallroles('writer|admin')
I am both a writer and an admin!
@else
I do not have all of these roles...
@endhasallroles
publicfunctionrender($request, Exception $exception){
if ($exception instanceof \AptCD\Permission\Exceptions\UnauthorizedException) {
// Code here ...
}
returnparent::render($request, $exception);
}
publicfunctionsetUp(){
// first gister all the roles and permissions$this->app->make(\AptCD\Permission\PermissionRegistrar::class)->registerPermissions();
}