creode / permissions-seeder
Exposes a simple permission seeder class that aids in creation of roles and permissions.
Requires
- php: ^8.1
- illuminate/contracts: ^10.0 | ^11.0
- spatie/laravel-package-tools: ^1.14.0
- spatie/laravel-permission: ^5.0 || ^6.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8 | ^8.1
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
Exposes a simple permission seeder class that aids in creation of roles and permissions.
Installation
You can install the package via composer:
composer require creode/permissions-seeder
Usage
The getPermissions()
function
This is a function used to return an array of permissions to create. By default it uses the following but of course can be overridden in child classes.
protected function getPermissions(): array { return [ 'viewAny', 'view', 'update', 'create', 'delete', 'destroy', ]; }
The getPermissionGroup()
function
This is an abstract function used to determine the type of resource to create permissions for. It should return a string for example "Asset". This is used to be appended to the end of the permission name for instance "viewAnyAsset" or "deleteAsset". It also is used to determine the name of the role to create.
protected function getPermissionGroup(): string { return 'Asset'; }
The getRoleName() function
This is a function used to return the name of the role to create. By default it uses the following but of course can be overridden in child classes. It defaults to the following but can be overridden in child classes:
protected function getRoleName(): string { return strtolower($this->getPermissionGroup().'-manager'); }
Properties
This class exposes the following properties that can be used to override the default behaviour:
/** Determines if we should give super admin permissions to this group. */ protected $giveSuperAdminPermissions = true; /** Determines if we should create a role for this group. */ protected $shouldCreateRole = true;
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.