inoplate / abilities
一个用于管理用户权限的laravel包
v0.0.3
2016-08-30 21:04 UTC
Requires (Dev)
- laravel/laravel: 5.3.*
- phpunit/phpunit: ^5.5
This package is not auto-updated.
Last update: 2024-09-14 18:58:50 UTC
README
Inoplate abilities loader 是一个laravel包,用于从数据库加载和检查权限。
安装
composer install inoplate/abilities
使用方法
在使用这个包之前,我们必须遵循以下步骤。
- 将 Inoplate\Abilities\AbilitiesServiceProvider 添加到我们的服务提供者配置中。
- 用 Inoplate\Abilities\AuthServiceProvider 替换 Illuminate\Auth\AuthServiceProvider
为了注册权限,我们可以扩展这个包中附带的自定义BootstrapServiceProvider。在 getAbilities 方法中定义可用的权限
use Inoplate\Abilities\BootstrapServiceProvider as BaseProvider; class BootstrapServiceProvider extends BaseProvider { protected function getAbilities() { // Abilities are developer defined entity. Yess! // You must define abilities that are available for checking return ['create-post', 'update-post', 'delete-post']; } }
这个包附带默认迁移。您可以选择发布并使用它,或者根据需要使用其他迁移。这个包还附带具有能力属性的 User 和 Role 模型。您可以选择使用或忽略它们。(用户和角色是一对多关系)
$user->abilities; // Retrieve user abilities $user->roles->abilities; // Retrieve user specific role abilities // To assign abilities, use Role. // Unfortunately, we can't set abilities directly to user at the moment. // NOTE! Abilities assignment will override existing abilities. $role = Role::find(1); $role->abilities = ['new-abilities']; $role->save();
每次我们检查权限,如 $user->can('create-post') 或 Gate::allows('create-post'),它都会检查属于用户的能力。
策略是基于资源的检查,我们可以像往常一样使用它。
请注意。
- 如果您使用自定义的Gate检查器,将有一个额外的参数 ability 用于检查。
运行测试
vendor/bin/phpunit
贡献
感谢您考虑为此包做出贡献。只需创建一个pull request并详细说明您的目的。我们可以讨论代码标准、分支策略等。
许可证
本项目采用MIT许可证