mawuekom / laravel-access-control
一个帮助你处理Laravel中角色和权限的包
v3.4.1
2022-04-25 00:07 UTC
Requires
- php: ^7.4|^8.0
- doctrine/dbal: ^3.2
- illuminate/auth: ^8.0|^9.0
- illuminate/console: ^8.0|^9.0
- illuminate/database: ^8.0|^9.0
- illuminate/http: ^8.0|^9.0
- illuminate/support: ^8.0|^9.0
- illuminate/validation: ^8.0|^9.0
- mawuekom/laravel-custom-helpers: ^1.0
- mawuekom/laravel-custom-user: ^2.1
- mawuekom/laravel-lang-resources: ^1.2
- mawuekom/laravel-model-uuid: ^2.0
- mawuekom/laravel-repository: ^1.3
- mawuekom/laravel-request-customizer: ^1.1
- spatie/data-transfer-object: ^3.7
- symfony/console: ^6.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
本包为您提供了易于在Laravel项目中管理角色和权限的一系列功能。
安装
您可以通过composer安装此包
composer require mawuekom/laravel-access-control
使用方法
安装后,前往 config/app.php
添加 AccontrolServiceProvider
到 providers 数组中
Laravel 5.5及以上版本使用包自动发现功能,无需编辑 config/app.php
文件。
'providers' => [ ... Mawuekom\Accontrol\AccontrolServiceProvider::class, ],
php artisan vendor:publish --tag=accontrol
或者您可以发布配置
php artisan vendor:publish --tag=accontrol --config
配置
- 您可以更改模型的连接、模型路径,还有一个方便的模拟功能。
- 有许多可配置的选项,已经扩展到可以通过
.env
文件变量进行配置。 - 由于这个原因,可能不需要直接编辑配置文件。
- 查看配置文件: accontrol.php.
<?php return [ /* |-------------------------------------------------------------------------- | Slug Separator |-------------------------------------------------------------------------- | | Here you can change the slug separator. This is very important in matter | of magic method __call() and also a `Slugable` trait. The default value | is a dot. | */ 'separator' => env('ACCONTROL_DEFAULT_SEPARATOR', '.'), /* |-------------------------------------------------------------------------- | Accontrol feature settings |-------------------------------------------------------------------------- */ 'action' => [ 'enable' => env('ACCONTROL_ACTIONS_ENABLE', true), 'name' => env('ACCONTROL_ACTIONS_LABEL', 'Action'), 'resource_name' => env('ACCONTROL_ACTIONS_RESOURCE_NAME', 'action'), 'model' => env('ACCONTROL_ACTIONS_MODEL', Mawuekom\Accontrol\Models\Action::class), 'table' => [ 'name' => env('ACCONTROL_ACTIONS_DATABASE_TABLE', 'actions'), 'primary_key' => env('ACCONTROL_ACTIONS_DATABASE_TABLE_PRIMARY_KEY', 'id'), ], ], 'entity' => [ 'enable' => env('ACCONTROL_ENTITIES_ENABLE', true), 'name' => env('ACCONTROL_ENTITIES_LABEL', 'Entity'), 'resource_name' => env('ACCONTROL_ENTITIES_RESOURCE_NAME', 'entity'), 'model' => env('ACCONTROL_ENTITIES_MODEL', Mawuekom\Accontrol\Models\Entity::class), 'table' => [ 'name' => env('ACCONTROL_ENTITIES_DATABASE_TABLE', 'entities'), 'primary_key' => env('ACCONTROL_ENTITIES_DATABASE_TABLE_PRIMARY_KEY', 'id'), ], ], 'role' => [ 'enable' => env('ACCONTROL_ROLES_ENABLE', true), 'name' => env('ACCONTROL_ROLES_LABEL', 'Role'), 'resource_name' => env('ACCONTROL_ROLES_RESOURCE_NAME', 'role'), 'model' => env('ACCONTROL_ROLES_MODEL', Mawuekom\Accontrol\Models\Role::class), 'table' => [ 'name' => env('ACCONTROL_ROLES_DATABASE_TABLE', 'roles'), 'primary_key' => env('ACCONTROL_ROLES_DATABASE_TABLE_PRIMARY_KEY', 'id'), ], ], 'role_user' => [ 'enable' => true, 'name' => env('ACCONTROL_ROLE_USER_LABEL', 'Role User'), 'resource_name' => env('ACCONTROL_ROLE_USER_RESOURCE_NAME', 'role_user'), 'model' => env('ACCONTROL_ROLE_USER_MODEL', null), 'table' => [ 'name' => env('ACCONTROL_ROLE_USER_DATABASE_TABLE', 'role_user'), 'primary_key' => env('ACCONTROL_ROLE_USER_DATABASE_TABLE_PRIMARY_KEY', 'id'), 'role_foreign_key' => env('ACCONTROL_ROLE_USER_DATABASE_TABLE_ROLE_FOREIGN_KEY', 'role_id'), 'user_foreign_key' => env('ACCONTROL_ROLE_USER_DATABASE_TABLE_USER_FOREIGN_KEY', 'user_id'), ], ], 'permission' => [ 'enable' => true, 'name' => env('ACCONTROL_PERMISSIONS_LABEL', 'Permission'), 'resource_name' => env('ACCONTROL_PERMISSIONS_RESOURCE_NAME', 'permission'), 'model' => env('ACCONTROL_PERMISSIONS_MODEL', Mawuekom\Accontrol\Models\Permission::class), 'table' => [ 'name' => env('ACCONTROL_PERMISSIONS_DATABASE_TABLE', 'permissions'), 'primary_key' => env('ACCONTROL_PERMISSIONS_DATABASE_TABLE_PRIMARY_KEY', 'id'), 'action_foreign_key' => env('ACCONTROL_PERMISSIONS_DATABASE_TABLE_ACTION_FOREIGN_KEY', 'action_id'), 'entity_foreign_key' => env('ACCONTROL_PERMISSIONS_DATABASE_TABLE_ENTITY_FOREIGN_KEY', 'entity_id'), ], ], 'permission_role' => [ 'enable' => true, 'name' => env('ACCONTROL_PERMISSION_ROLE_LABEL', 'Permission Role'), 'resource_name' => env('ACCONTROL_PERMISSION_ROLE_RESOURCE_NAME', 'permission_role'), 'model' => env('ACCONTROL_PERMISSION_ROLE_MODEL', null), 'table' => [ 'name' => env('ACCONTROL_PERMISSION_ROLE_DATABASE_TABLE', 'permission_role'), 'primary_key' => env('ACCONTROL_PERMISSION_ROLE_DATABASE_TABLE_PRIMARY_KEY', 'id'), 'permission_foreign_key' => env('ACCONTROL_PERMISSION_ROLE_DATABASE_TABLE_PERMISSION_FOREIGN_KEY', 'permission_id'), 'role_foreign_key' => env('ACCONTROL_PERMISSION_ROLE_DATABASE_TABLE_ROLE_FOREIGN_KEY', 'role_id'), ], ], 'permission_user' => [ 'enable' => true, 'name' => env('ACCONTROL_PERMISSION_USER_LABEL', 'Permission User'), 'resource_name' => env('ACCONTROL_PERMISSION_USER_RESOURCE_NAME', 'permission_user'), 'model' => env('ACCONTROL_PERMISSION_USER_MODEL', null), 'table' => [ 'name' => env('ACCONTROL_PERMISSION_USER_DATABASE_TABLE', 'permission_user'), 'primary_key' => env('ACCONTROL_PERMISSION_USER_DATABASE_TABLE_PRIMARY_KEY', 'id'), 'permission_foreign_key' => env('ACCONTROL_PERMISSION_ROLE_DATABASE_TABLE_PERMISSION_FOREIGN_KEY', 'permission_id'), 'user_foreign_key' => env('ACCONTROL_PERMISSION_ROLE_DATABASE_TABLE_USER_FOREIGN_KEY', 'user_id'), ], ], 'user' => [ 'model' => env('ACCONTROL_USERS_MODEL', App\Models\User::class), 'name' => env('ACCONTROL_USERS_LABEL', 'User'), 'resource_name' => env('ACCONTROL_USERS_RESOURCE_NAME', 'user'), 'table' => [ 'name' => env('ACCONTROL_USERS_DATABASE_TABLE', 'users'), 'primary_key' => env('ACCONTROL_USERS_DATABASE_TABLE_PRIMARY_KEY', 'id'), ], ], /* |-------------------------------------------------------------------------- | Bunch of features to enable or disable. |-------------------------------------------------------------------------- */ 'enable' => [], /* |-------------------------------------------------------------------------- | Inheritance |-------------------------------------------------------------------------- | | By default, the plugin is configured so that all roles inherit all | permissions applied to roles defined at a lower level than the role in | question. If this is not desired, setting the below to false will disable | this inheritance | */ 'role_inheritance' => env('ACCONTROL_ROLES_INHERITANCE', true), /* |-------------------------------------------------------------------------- | Add uuid support |-------------------------------------------------------------------------- */ 'uuids' => [ 'enable' => env('ACCONTROL_UUID_ENABLE', true), 'column' => env('ACCONTROL_UUID_COLUMN', '_id'), ], ];
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
许可
MIT许可证(MIT)。请参阅 许可文件 了解更多信息。