2017 © Pedro Peláez
 

library laravel-rbac

Laravel5 RBAC

image

niefufeng/laravel-rbac

Laravel5 RBAC

  • Monday, July 10, 2017
  • by niefufeng
  • Repository
  • 1 Watchers
  • 0 Stars
  • 20 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

Laravel5 Rbac

laravel-rbac是一个基于Laravel5RBAC(Role-Based Access Control)扩展包。, (*1)

版本信息

Rbac Laravel PHP
0.0.x >=5.x >=7.1

安装方式

直接通过命令行来快速安装:, (*2)

composer require niefufeng/laravel-rbac

或者在composer.jsonrequire里加入:, (*3)

{
    "require": {
        "huang-yi/rbac-laravel": "1.0.*"
    }
}

然后执行composer install。, (*4)

配置

首先在config/app.php里的providers里添加:, (*5)

[
    'providers' => [
        NieFufeng\LaravelRbac\ServiceProvider::class,
    ]
]

然后发布配置文件和migration文件,在命令行执行:, (*6)

php artisan vendor:publish

发布之后根据自己实际情况配置config/rbac.php文件。, (*7)

执行数据库迁移,在命令行执行:, (*8)

php artisan migrate

接下来,打开项目的User模型,需要使用NieFufeng\LaravelRbac\Traits\UserTrait和实现NieFufeng\LaravelRbac\Contracts\UserInterface:, (*9)


<?php namespace App; use NieFufeng\LaravelRbac\Contracts\UserInterface; use NieFufeng\LaravelRbac\Traits\UserTrait; class User extends Authenticatable implements UserInterface { use UserTrait; }

食用方式

$user = App\User::first();

// 新建权限
$permission = NieFufeng\LaravelRbac\Models\Permission::create([
    'name' => '新建用户',
    'slug' => 'create-users',
    'description' => '新建用户'
]);

// 新建角色
$role = NieFufeng\LaravelRbac\Models\Role::create([
    'name' => '管理员',
    'slug' => 'admin',
    'description' => '牛逼哄哄的管理员'
]);

// 给角色赋予权限,接受array、Collection、int和Permission
$role->attachPermissions($permission);

// 给用户赋予角色
$user->attachRoles($role);

// 判断用户是否有xx角色
$user->hasRoles('admin');//true

// hasPermissions和may是一个方法
$user->hasPermissions('create-users');//true
$user->may('create-users');//true

// 剥夺角色
$user->detachRoles($role);

// 获取用户的所有角色信息
$user->roles;
// 从缓存里获取用户的所有角色信息
$user->cachedRoles();
// 从缓存里清除用户的角色信息(执行attachRoles和detachRoles会自动清除)
$user->forgetCachedRoles();

当然,扩展目前自带了两个中间件,可以按照需要在app/Http/Kernel.php里加入:, (*10)

protected $routeMiddleware = [
    'permissions' => NieFufeng\LaravelRbac\Middleware\Permission::class,
    'role' => NieFufeng\LaravelRbac\Middleware\Role::class
];

然后即可在路由中使用:, (*11)

Route::get('/', [
    'users' => 'XyzController@hehe',
    'middleware' => 'role:admin,super-admin'
]);

blade支持

//判断是否有角色,多个角色用半角,隔开
@hasRole('admin,super-admin')
如果你看到这段话,说明你是管理员。
@endHasRole

//判断是否有权限,多个权限用半角,隔开
@hasPermission('create-users')
<button>新建用户</button>
@endHasPermission

支持

Bugs和问题可提交至Github, (*12)

Email:niefufeng@gmail.com, (*13)

QQ:7547811, (*14)

License

当然是选择 MIT license 啦~, (*15)

The Versions

10/07 2017

dev-master

9999999-dev

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate

10/07 2017

v0.0.7

0.0.7.0

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate

10/07 2017

v0.0.6

0.0.6.0

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate

07/07 2017

v0.0.5

0.0.5.0

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate

06/07 2017

v0.0.4

0.0.4.0

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate

06/07 2017

v0.0.3

0.0.3.0

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate

06/07 2017

v0.0.2

0.0.2.0

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate

06/07 2017

0.0.1

0.0.1.0

Laravel5 RBAC

  Sources   Download

MIT

The Requires

 

The Development Requires

by outshine

laravel auth rbac illuminate