RBAC with Domains API
Convenience API for RBAC with domains: user–role and permission operations scoped by domain. It is a subset of the Management API. Below, e is an Enforcer instance loaded with a domain-aware model.
Справка
e, err := NewEnforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")
const e = await newEnforcer('examples/rbac_with_domains_model.conf', 'examples/rbac_with_domains_policy.csv')
$e = new Enforcer('examples/rbac_with_domains_model.conf', 'examples/rbac_with_domains_policy.csv');
e = casbin.Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")
var e = new Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv");
let mut e = Enforcer::new("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv").await?;
Enforcer e = new Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv");
GetUsersForRoleInDomain
Returns all users that have the given role in the given domain.
res := e.GetUsersForRoleInDomain("admin", "domain1")
const res = e.getUsersForRoleInDomain("admin", "domain1")
res = e.get_users_for_role_in_domain("admin", "domain1")
GetRolesForUserInDomain
Returns all roles assigned to the user in the given domain.
res := e.GetRolesForUserInDomain("alice", "domain1")
const res = e.getRolesForUserInDomain("alice", "domain1")
res = e.get_roles_for_user_in_domain("alice", "domain1")
List<String> res = e.getRolesForUserInDomain("admin", "domain1");
GetPermissionsForUserInDomain
Returns all permissions (policy rules) for the user or role in the given domain.
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain
Assigns the role to the user in the domain. Returns false if the assignment already exists.
ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")
ok = e.add_role_for_user_in_domain("alice", "admin", "domain1")
boolean ok = e.addRoleForUserInDomain("alice", "admin", "domain1");
DeleteRoleForUserInDomain
Removes the role from the user in the domain. Returns false if the link did not exist.
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain
Removes all roles from the user in the domain. Returns false if the user had no roles there.
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain
Returns all users that have at least one role in the given domain. Empty if the model has no domain.
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain
Removes all user–role assignments in the given domain. Returns false if the model has no domain.
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains
Removes all users and roles for the given domains. With no arguments, clears all domains.
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains
Returns all domains that appear in the policy.
res, _ := e.GetAllDomains()
Do not use :: in domain names; it is reserved in Casbin’s expression syntax.
GetAllRolesByDomain
Returns all roles that appear in the given domain.
res := e.GetAllRolesByDomain("domain1")
Does not include roles inherited via hierarchy (implicit roles); only direct assignments in the domain.