Download the PHP package fahmiardi/laravel-mongodb-permission without Composer
On this page you can find all versions of the php package fahmiardi/laravel-mongodb-permission. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download fahmiardi/laravel-mongodb-permission
More information about fahmiardi/laravel-mongodb-permission
Files in fahmiardi/laravel-mongodb-permission
Package laravel-mongodb-permission
Short Description Permission handling for Laravel 5.3 using Mongodb (Moloquent) based on Spatie package
License MIT
Homepage https://github.com/fahmiardi/laravel-mongodb-permission
Informations about the package laravel-mongodb-permission
Associate users with roles and permissions (Mongodb/Moloquent)
This package allows to save permissions and roles in a database. It is built extend from Spatie Laravel Permission
Once installed you can do stuff like this:
You can test if a user has a permission with Laravel's default can
-function.
Install
You can install the package via composer:
This service provider must be installed. And Spatie provider too.
You can publish the config-file with:
This is the contents of the published config file:
Adjust the table_names
config above for support mongodb many to many relationships (using EmbedsMany)
Usage
First add the Spatie\Permission\Traits\HasRoles
-trait to your User model.
This package allows for users to be associated with roles. Permissions can be associated with roles.
A Role
and a Permission
are regular Eloquent-models. They can have a name and can be created like this:
The HasRoles
adds eloquent relationships to your models, which can be accessed directly or used as a base query.
Using permissions
A permission can be given to a user:
A permission can be revoked from a user:
You can test if a user has a permission:
Saved permissions will be registered with the Illuminate\Auth\Access\Gate
-class. So you can
test if a user has a permission with Laravel's default can
-function.
Using roles and permissions
A role can be assigned to a user:
A role can be removed from a user:
Roles can also be synced :
You can determine if a user has a certain role:
You can also determine if a user has any of a given list of roles:
You can also determine if a user has all of a given list of roles:
The assignRole
, hasRole
, hasAnyRole
, hasAllRoles
and removeRole
-functions can accept a
string, a Spatie\Permission\Models\Role
-object or an \Illuminate\Support\Collection
-object.
A permission can be given to a role:
You can determine if a role has a certain permission:
A permission can be revoked from a role:
The givePermissionTo
and revokePermissionTo
-functions can accept a
string or a Spatie\Permission\Models\Permission
-object.
Saved permission and roles are also registered with the Illuminate\Auth\Access\Gate
-class.
Using blade directives
This package also adds Blade directives to verify whether the currently logged in user has all or any of a given list of roles.
You can use Laravel's native @can
directive to check if a user has a certain permission.
Using a middleware
The package doesn't contain a middleware to check permissions but it's very trivial to add this yourself.
This will create a RoleMiddleware for you, where you can handle your role and permissions check.
Don't forget to add the route middleware to your Kernel:
Now you can protect your routes using the middleware you just set up:
Extending
If you need to extend or replace the existing Role
or Permission
models you just need to
keep the following things in mind:
- Your
Role
model needs to implement theSpatie\Permission\Contracts\Role
contract - Your
Permission
model needs to implement theSpatie\Permission\Contracts\Permission
contract - You must publish the configuration with this command:
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
and update themodels.role
andmodels.permission
values
Unit Test
Soon.