jumbodroid / phprbac
PHP RBAC 是围绕 OWASP/rbac 包的包装,以支持 Laravel 框架
v2.0.3
2022-05-02 05:53 UTC
Requires
- php: >=7.3
- illuminate/config: >=7.11
- owasp/phprbac: ^2.0
Requires (Dev)
- mockery/mockery: ^1.3.1
- phpunit/phpunit: ^8.5|^9.3.3
- symfony/var-dumper: >=5.2.0
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 找到。只需将
Rbac->{Permissions}
替换为Rbac->permissions()
Rbac->{Roles}
替换为Rbac->roles()
Rbac->{Users}
替换为Rbac->users()
要获取 Rbac 类的实例,使用Rbac->getInstance()
角色
- 创建新角色
$role_id = Rbac::roles()->add($title, $description); $role_id = Rbac::roles()->add($title, $description, $parent_id);
- 查找角色标题
$role = Rbac::roles()->getTitle($role_id);
- 查找分配给特定角色的权限列表
$role_permissions = Rbac::roles()->permissions($role_id, true);
- 取消分配分配给特定角色的所有权限
Rbac::roles()->unassignPermissions($role_id);
- 将权限分配给角色
Rbac::roles()->assign($role_id, $perm_id);
- 删除一个角色及其所有子角色
$ok = Rbac::roles()->remove($role_id, true);
- 删除角色
Rbac::roles()->remove($role->ID, true);
权限
- 创建新权限
$perm_id = Rbac::permissions()->add($perm_title, $perm_desc, 1);
- 检查给定权限是否存在
$perm_id = Rbac::permissions()->returnId($perm_title);
- 取消分配分配给特定权限的所有角色
Rbac::permissions()->unassignRoles($perm_id);
- 删除特定权限
Rbac::permissions()->remove($perm_id, true);
用户
- 取消分配特定角色给所有用户
Rbac::roles()->unassignUsers($role_id);
- 检查特定用户是否有特定角色
$assigned = Rbac::users()->hasRole($role['ID'], $user->id);
- 检索分配给特定用户的所有角色
$assigned = Rbac::users()->allRoles($user_id);
- 将特定角色分配给用户
Rbac::users()->assign($role_id, $user_id);
- 取消分配特定角色给用户
Rbac::users()->unassign($role_id, $user_id);