jumbodroid / phprbac

PHP RBAC 是围绕 OWASP/rbac 包的包装,以支持 Laravel 框架

v2.0.3 2022-05-02 05:53 UTC

This package is auto-updated.

Last update: 2024-08-30 02:05:34 UTC


README

phprbac 是围绕 OWASP/rbac 包的包装,增加了对 Laravel 框架的支持

利用 phprbac 为您的 Laravel 项目添加 NIST 级别 2 授权。

将提供者添加到 config/app.php 的 providers 数组中

Jumbodroid\PhpRbac\ServiceProviders\PhpRbacServiceProvider::class

运行 php artisan vendor:publish --provider="Jumbodroid\PhpRbac\ServiceProviders\PhpRbacServiceProvider" 以发布配置和迁移文件。

用法

完整的文档可以在 phprbac.net 找到。只需将

  1. Rbac->{Permissions} 替换为 Rbac->permissions()
  2. Rbac->{Roles} 替换为 Rbac->roles()
  3. Rbac->{Users} 替换为 Rbac->users()
    要获取 Rbac 类的实例,使用 Rbac->getInstance()

角色

  1. 创建新角色
$role_id = Rbac::roles()->add($title, $description);  
$role_id = Rbac::roles()->add($title, $description, $parent_id);  
  1. 查找角色标题
$role = Rbac::roles()->getTitle($role_id);
  1. 查找分配给特定角色的权限列表
$role_permissions = Rbac::roles()->permissions($role_id, true);  
  1. 取消分配分配给特定角色的所有权限
Rbac::roles()->unassignPermissions($role_id);  
  1. 将权限分配给角色
Rbac::roles()->assign($role_id, $perm_id);  
  1. 删除一个角色及其所有子角色
$ok = Rbac::roles()->remove($role_id, true);  
  1. 删除角色
Rbac::roles()->remove($role->ID, true);  

权限

  1. 创建新权限
$perm_id = Rbac::permissions()->add($perm_title, $perm_desc, 1);  
  1. 检查给定权限是否存在
$perm_id = Rbac::permissions()->returnId($perm_title);  
  1. 取消分配分配给特定权限的所有角色
Rbac::permissions()->unassignRoles($perm_id);  
  1. 删除特定权限
Rbac::permissions()->remove($perm_id, true);  

用户

  1. 取消分配特定角色给所有用户
Rbac::roles()->unassignUsers($role_id);  
  1. 检查特定用户是否有特定角色
$assigned = Rbac::users()->hasRole($role['ID'], $user->id);  
  1. 检索分配给特定用户的所有角色
$assigned = Rbac::users()->allRoles($user_id);  
  1. 将特定角色分配给用户
Rbac::users()->assign($role_id, $user_id);  
  1. 取消分配特定角色给用户
Rbac::users()->unassign($role_id, $user_id);  

用户角色

角色权限