inoplate/abilities

一个用于管理用户权限的laravel包

安装: 18

依赖者: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

开放问题: 0

类型:composer

v0.0.3 2016-08-30 21:04 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:58:50 UTC


README

Inoplate abilities loader 是一个laravel包,用于从数据库加载和检查权限。

安装

composer install inoplate/abilities

使用方法

在使用这个包之前,我们必须遵循以下步骤。

  1. Inoplate\Abilities\AbilitiesServiceProvider 添加到我们的服务提供者配置中。
  2. 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'];
        }
    }

这个包附带默认迁移。您可以选择发布并使用它,或者根据需要使用其他迁移。这个包还附带具有能力属性的 UserRole 模型。您可以选择使用或忽略它们。(用户和角色是一对多关系)

    $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'),它都会检查属于用户的能力。

策略是基于资源的检查,我们可以像往常一样使用它。

请注意。

  1. 如果您使用自定义的Gate检查器,将有一个额外的参数 ability 用于检查。

运行测试

vendor/bin/phpunit

贡献

感谢您考虑为此包做出贡献。只需创建一个pull request并详细说明您的目的。我们可以讨论代码标准、分支策略等。

许可证

本项目采用MIT许可证