Entrust is a succinct and flexible way to add Role-based Permissions to Laravel 5. The default migration takes advantage of onDelete('cascade') clauses within the pivot tables to remove relations when a parent record is deleted. If for some reason you cannot use cascading deletes in your database, the EntrustRole and EntrustPermission classes, and the HasRole trait include event listeners to manually delete records in relevant pivot tables. In the interest of not accidentally deleting data, the event listeners will not delete pivot data if the model uses soft deleting. However, due to limitations in Laravel's event listeners, there is no way to distinguish between a call to delete() versus a call to forceDelete(). For this reason, before you force delete a model, you must manually delete any of the relationship data (unless your pivot tables uses cascading deletes).
Features
- Store role records
- Store permission records
- Store many-to-many relations between roles and users
- Assign roles to the users
- Add permissions to each role
- You can have as many Roles as you want for each User and vice versa