企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# RBAC API 一个更友好的RBAC API。 这个API是Management API的子集。 RBAC用户可以使用这个API来简化代码。 ## 参考 全局变量`e`是实施者实例。 Go ```go e := NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv") ``` Node.js ```javascript const e = await newEnforcer('examples/rbac_model.conf', 'examples/rbac_policy.csv') ``` PHP ```php $e = new Enforcer('examples/rbac_model.conf', 'examples/rbac_policy.csv'); ``` ### `GetRolesForUser()` GetRolesForUser 获取用户具有的角色。 例如: Go ```go res := e.GetRolesForUser("alice") ``` Node.js ```javascript const res = e.getRolesForUser('alice') ``` PHP ```php $res = $e->getRolesForUser("alice"); ``` ### `GetUsersForRole()` GetUsersForRole 获取具有角色的用户。 例如: Go ```go res := e.GetUsersForRole("data1_admin") ``` Node.js ```javascript const res = e.getUsersForRole('data1_admin') ``` PHP ```php $res = $e->getUsersForRole("data1_admin"); ``` ### `HasRoleForUser()` HasRoleForUser 确定用户是否具有角色。 例如: Go ```go res := e.HasRoleForUser("alice", "data1_admin") ``` Node.js ```javascript const res = e.hasRoleForUser('alice', 'data1_admin') ``` PHP ```php $res = $e->hasRoleForUser("alice", "data1_admin"); ``` ### `AddRoleForUser()` AddRoleForUser 为用户添加角色。 如果用户已经拥有该角色(aka不受影响),则返回false。 例如: Go ```go e.AddRoleForUser("alice", "data2_admin") ``` Node.js ```javascript await e.addRoleForUser('alice', 'data2_admin') ``` PHP ```php $e->addRoleForUser("alice", "data2_admin"); ``` ### `DeleteRoleForUser()` DeleteRoleForUser 删除用户的角色。 如果用户没有该角色(aka不受影响),则返回false。 For example: Go ```go e.DeleteRoleForUser("alice", "data1_admin") ``` Node.js ```javascript await e.deleteRoleForUser('alice', 'data1_admin') ``` PHP ```php $e->deleteRoleForUser("alice", "data1_admin"); ``` ### `DeleteRolesForUser()` DeleteRolesForUser 删除用户的所有角色。 如果用户没有任何角色(aka不受影响),则返回false。 例如: Go ```go e.DeleteRolesForUser("alice") ``` Node.js ```javascript await e.deleteRolesForUser('alice') ``` PHP ```php $e->deleteRolesForUser("alice"); ``` ### `DeleteUser()` DeleteUser 删除一个用户。 如果用户不存在,则返回false(也就是说不受影响)。 例如: Go ```go e.DeleteUser("alice") ``` Node.js ```javascript await e.deleteUser('alice') ``` PHP ```php $e->deleteUser("alice"); ``` ### `DeleteRole()` DeleteRole 删除一个角色。 例如: Go ```go e.DeleteRole("data2_admin") ``` Node.js ```javascript await e.deleteRole("data2_admin") ``` PHP ```php $e->deleteRole("data2_admin"); ``` ### `DeletePermission()` DeletePermission 删除权限。 如果权限不存在,则返回false(aka不受影响)。 例如: Go ```go e.DeletePermission("read") ``` Node.js ```javascript await e.deletePermission('read') ``` PHP ```php $e->deletePermission("read"); ``` ### `AddPermissionForUser()` AddPermissionForUser 为用户或角色添加权限。 如果用户或角色已经拥有该权限(aka不受影响),则返回false。 例如: Go ```go e.AddPermissionForUser("bob", "read") ``` Node.js ```javascript await e.addPermissionForUser('bob', 'read') ``` PHP ```php $e->addPermissionForUser("bob", "read"); ``` ### `DeletePermissionForUser()` DeletePermissionForUser 删除用户或角色的权限。 如果用户或角色没有权限(aka不受影响),则返回false。 例如: Go ```go e.DeletePermissionForUser("bob", "read") ``` Node.js ```javascript await e.deletePermissionForUser("bob", "read") ``` PHP ```php $e->deletePermissionForUser("bob", "read"); ``` ### `DeletePermissionsForUser()` DeletePermissionsForUser 删除用户或角色的权限。 如果用户或角色没有任何权限(aka不受影响),则返回false。 例如: Go ```go e.DeletePermissionsForUser("bob") ``` Node.js ```javascript await e.deletePermissionsForUser('bob') ``` PHP ```php $e->deletePermissionsForUser("bob"); ``` ### `GetPermissionsForUser()` GetPermissionsForUser 获取用户或角色的权限。 例如: Go ```go e.GetPermissionsForUser("bob") ``` Node.js ```javascript e.getPermissionsForUser('bob') ``` PHP ```php $e->getPermissionsForUser("bob"); ``` ### `HasPermissionForUser()` HasPermissionForUser 确定用户是否具有权限。 例如: Go ```go e.HasPermissionForUser("alice", []string{"read"}) ``` Node.js ```javascript e.hasPermissionForUser('alice', 'read') ``` PHP ```php $e->hasPermissionForUser("alice", []string{"read"}); ``` ### `GetImplicitRolesForUser()` GetImplicitRolesForUser 获取用户具有的隐式角色。 与GetRolesForUser() 相比,该函数除了直接角色外还检索间接角色。 For example: g, alice, role:admin g, role:admin, role:user GetRolesForUser("alice") can only get: \["role:admin"\]. But GetImplicitRolesForUser("alice") will get: \["role:admin", "role:user"\]. 例如: Go ```go e.GetImplicitRolesForUser("alice") ``` Node.js ```javascript Method is not implemented ``` PHP ```php $e->getImplicitRolesForUser("alice"); ``` ### `GetImplicitPermissionsForUser()` GetImplicitPermissionsForUser gets implicit permissions for a user or role. Compared to GetPermissionsForUser(), this function retrieves permissions for inherited roles. For example: p, admin, data1, read p, alice, data2, read g, alice, admin GetPermissionsForUser("alice") can only get: \[\["alice", "data2", "read"\]\]. But GetImplicitPermissionsForUser("alice") will get: \[\["admin", "data1", "read"\], \["alice", "data2", "read"\]\]. For example: Go ```go e.GetImplicitPermissionsForUser("alice") ``` Node.js ```javascript Method is not implemented ``` PHP ```php $e->getImplicitPermissionsForUser("alice"); ```