美文网首页
Laravel-ACL 权限相关操作

Laravel-ACL 权限相关操作

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

创建权限

$permission = new Permission();
$permUser = $permission->create([ 
    'name'        => 'user',
    'slug'        => [          // 传入权限数组
        'create'     => true,
        'view'       => true,
        'update'     => true,
        'delete'     => true,
        'view.phone' => true
    ],
    'description' => 'manage user permissions'
]);

$permission = new Permission();
$permPost = $permission->create([ 
    'name'        => 'post',
    'slug'        => [          // 传入权限数组
        'create'     => true,
        'view'       => true,
        'update'     => true,
        'delete'     => true,
    ],
    'description' => 'manage post permissions'
]);

给角色分配权限

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

$roleAdmin = Role::first(); // administrator
// 传入对象
$roleAdmin->assignPermission($permUser);
// 传入 id
$roleAdmin->assignPermission($permUser->id);
// 传入 name
$roleAdmin->assignPermission('user');
// 传入集合
$roleAdmin->assignPermission(Permission::all());

一次传入多个权限:

// 数组形式的多个权限
$roleAdmin->assignPermission(array($permUser, $permPost->id));
// 以逗号分隔的多个角色 slugs
$roleAdmin->assignPermission('user, post');

提醒: 如果权限不存在,系统会抛出异常。

为角色移除权限

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

$roleAdmin = Role::first(); // administrator
// 传入对象
$roleAdmin->revokePermission($permUser);
// 传入 id
$roleAdmin->revokePermission($permUser->id);
// 传入 name
$roleAdmin->revokePermission('user');
// 传入集合
$roleAdmin->revokePermission(Permission::all());

一次传入多个权限:

// 数组形式的多个权限
$roleAdmin->assignPermission(array($permUser, $permPost->id));
// 以逗号分隔的多个角色 slugs
$roleAdmin->assignPermission('user, post');

提醒: 如果权限不存在,系统会抛出异常。

同步角色权限

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

$roleAdmin->syncPermissions([1,2,3]);
$roleAdmin->syncPermissions('user, post');
$roleAdmin->syncPermissions((array($permUser, $permPost));
// 传入集合
$roleAdmin->syncPermissions(Permission::all());

提醒: 如果权限不存在,系统会抛出异常。

撤销角色的所有权限

$roleAdmin->revokeAllPermissions();

获取角色的所有权限

$roleAdmin->getPermissions();

相关文章

  • Laravel-ACL 权限相关操作

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

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

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

  • Laravel-ACL 角色相关操作

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

  • 权限相关操作

    利用Django自带的相关方法对权限进行基本的操作。 重写User模型 在创建的应用中的模块文件重新定义User模...

  • Laravel-ACL 权限继承

    通过权限继承,可以达到一次过绑定多个权限的效果。 为什么需要继承? 某些情况下,同一个权限在不同的角色下有不同的方...

  • Laravel-ACL 获取权限

    获取角色权限 获取用户权限 获取用户的权限,用户权限和角色权限会以键值对数组的形式一起返回。同时用户权限会覆盖角色...

  • Oracle_Day03

    权限 系统权限:用户对数据库的相关操作权限 我通过system不仅要赋予user1登录到数据库的权限,还要...

  • Linux权限管理相关操作

    权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行...

  • SAP 权限管理概念、规范和使用

    概念介绍 常规应用 操作实战 企业常见的权限工作举例 一、权限相关的概念介绍 SAP权限设置对象概览 SAP系统权...

  • Mac开发下的文件权限的读写

    最近开发文件相关操作的应用,对文件相关权限做了一番了解,这里总结一下。 关于文件的权限的修改直接的相关接口目前没有...

网友评论

      本文标题:Laravel-ACL 权限相关操作

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