我爱编程

Permission

2018-04-09  本文已影响0人  thjxs

Roles

角色和权限是许多 Web 应用程序的重要组成部分

权限管理

Laravel 自带的用户授权方案

拓展包 Laravel-permission

  1. 安装拓展包
    composer require "spatie/laravel-permission:~2.7"
  2. 生产数据库迁移文件
    php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
  3. permission 数据库表结构


    permission table
  4. 配置
    php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"

加载 HasRoles

通过在用户模型里使用 trait -- HasRoles 可获得拓展包提供的方法

初始化

角色:管理员和站长
权限:内容管理、用户管理、网站设置

创建表

php artisan make:migration seed_roles_and_permissions_data
ex

//创建权限
Permission::create(['name' => 'manage_contents']);
Permission::create(['name' => 'manage_users']);
Permission::create(['name' => 'edit_settings']);

//创建站长并赋予权限
$founder = Role::create(['name' => 'Founder']);
$founder->givePermissionTo('manage_contents');
$founder->givePermissionTo('manage_users');
...

//关联用户
$user->assignRole('Founder');

//检查用户角色
$user->hasRole('Founder');

$user->hasAnyRole(Role::all());

$user->hasAllRoles(Role::all());

//检查权限
$user->can('manage_contents');
$role->hasPermissionTo('manage_contents');
上一篇 下一篇

猜你喜欢

热点阅读