美文网首页
Laravel-ACL 角色相关操作

Laravel-ACL 角色相关操作

作者: 伍源辉 | 来源:发表于2017-01-04 17:15 被阅读21次

创建角色

$roleAdmin = new Role();
$roleAdmin->name = 'Administrator';
$roleAdmin->slug = 'administrator';
$roleAdmin->description = 'manage administration privileges';
$roleAdmin->save();

//或者使用数组形式创建

$role = new Role();
$roleAdmin = $role->create([
    'name' => 'Administrator',
    'slug' => 'administrator',
    'description' => 'manage administration privileges'
]);

$role = new Role();
$roleModerator = $role->create([
    'name' => 'Moderator',
    'slug' => 'moderator',
    'description' => 'manage moderator privileges'
]);

分配角色给用户

提醒: 你可以传入对象、数组、role->id 或者只是 slug。

首先要在你的 User 模型中引入 HasRole trait 。

//...
use Kodeine\Acl\Traits\HasRole;
class User extends Model
{

    use HasRole;
//...
$user = User::find(1);
// 传入 object
$user->assignRole($roleAdmin);
// 传入 id
$user->assignRole($roleAdmin->id);
// 只传入 slug
$user->assignRole('administrator');

一次过传入多个角色:

// 数组形式传入多个角色
$user->assignRole(array($roleAdmin, $roleModerator));
// 或者传入通过逗号分隔的多个角色 slugs
$user->assignRole('administrator, moderator');

提醒: 如果角色不存在系统会抛出异常。

为用户撤销角色

你可以使用类似的方式为用户撤销角色

提醒: 你可以传入对象、数组、role->id 或者只是 slug。

$user = User::find(1);
// 传入 object
$user->revokeRole($roleAdmin);
// 传入 id
$user->revokeRole($roleAdmin->id);
// 只传入 slug
$user->revokeRole('administrator');

一次过传入多个角色:

// 数组形式传入多个角色
$user->revokeRole(array($roleAdmin, $roleModerator));
// 或者传入通过逗号分隔的多个角色 slugs
$user->revokeRole('administrator, moderator');

提醒: 如果角色不存在系统会抛出异常。

同步角色给用户

你可以传入角色对象数据、ids 或者 slugs 来同步角色给用户(参数中新的角色会插入到中间表,参数中没有的角色会从中间表移除)。

$user->syncRoles([1,2,3]);
$user->syncRoles('administrator, moderator');
$user->syncRoles((array($roleAdmin, $roleModerator));

提醒: 如果角色不存在系统会抛出异常。

撤销用户的所有角色

$user->revokeAllRoles();

获取用户的所有角色

$user = User::first();
$user->getRoles();

相关文章

  • Laravel-ACL 角色相关操作

    创建角色 分配角色给用户 提醒: 你可以传入对象、数组、role->id 或者只是 slug。 首先要在你的 Us...

  • Laravel-ACL 权限相关操作

    创建权限 给角色分配权限 提醒: 你可以传入对象、数组、permission->id 或者只传入 name。 一次...

  • Laravel-ACL 用户-权限相关操作

    用户权限的工作方式和角色权限一样,除了用户权限会覆盖默认的角色权限。 为权限集合设置的别名会以 json 的形式存...

  • Laravel-ACL 验证权限和角色

    验证角色 可以通过调用 is 方法验证角色。 基于用户的验证。 Laravel 5.3 使用 hasRole() ...

  • iOS runtime主要函数

    类相关操作函数 实例相关操作函数 属性操作相关函数 方法操作相关函数 选择器相关的操作函数 协议相关的操作函数 b...

  • mongodb认证

    简介 对MongoDB进行访问控制就是在访问之前先对用户校验,只有当用户有相关权限是才能根据角色执行相关操作。 M...

  • redis命令行操作

    redis命令 string类型操作 hash类型相关操作 list类型相关操作 set类型相关操作 zset类型...

  • centos 7 常用操作命令

    用户操作 文件操作 系统相关操作 linux系统服务管理命令 防火墙操作相关 压缩、解压 相关操作 快捷键操作

  • AS 相关操作

    1.生成序列化id 1. File > Settings > Editor > Inspections > Jav...

  • 文件操作

    一、文件信息相关 二、文件操作相关 三、文件内容操作相关

网友评论

      本文标题:Laravel-ACL 角色相关操作

      本文链接:https://www.haomeiwen.com/subject/dxzovttx.html