RBAC with Domains API
Uma API mais amigável para usuários para RBAC com domínios. Esta API é um subconjunto da API de Gerenciamento. Usuários RBAC podem usar esta API para simplificar seu código.
Referência
A variável global e
representa a instância do Enforcer.
- Go
- Node.js
- PHP
- Python
- .NET
- Rust
- Java
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()
A função GetUsersForRoleInDomain()
recupera os usuários que têm uma função dentro de um domínio.
Por exemplo:
- Go
- Node.js
- Python
res := e.GetUsersForRoleInDomain("admin", "domain1")
const res = e.getUsersForRoleInDomain("admin", "domain1")
res = e.get_users_for_role_in_domain("admin", "domain1")
GetRolesForUserInDomain()
A função GetRolesForUserInDomain()
recupera as funções que um usuário tem dentro de um domínio.
Por exemplo:
- Go
- Node.js
- Python
- Java
res := e.GetRolesForUserInDomain("admin", "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()
A função GetPermissionsForUserInDomain()
recupera as permissões para um usuário ou função dentro de um domínio.
Por exemplo:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
A função AddRoleForUserInDomain()
adiciona uma função para um usuário dentro de um domínio. Ela retorna false
se o usuário já tem a função (nenhuma alteração feita).
Por exemplo:
- Go
- Python
- Java
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()
A função DeleteRoleForUserInDomain()
remove uma função para um usuário dentro de um domínio. Ela retorna false
se o usuário não tem a função (nenhuma alteração feita).
Por exemplo:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
A função DeleteRolesForUserInDomain()
remove todas as funções para um usuário dentro de um domínio. Ela retorna false
se o usuário não tem nenhuma função (nenhuma alteração feita).
Por exemplo:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
A função GetAllUsersByDomain()
recupera todos os usuários associados com o domínio dado. Ela retorna um array de strings vazio se nenhum domínio é definido no modelo.
Por exemplo:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
A função DeleteAllUsersByDomain()
deleta todos os usuários associados com o domínio dado. Ela retorna false
se nenhum domínio é definido no modelo.
Por exemplo:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomains deletaria todos os usuários e funções associados. Ela deletaria todos os domínios se o parâmetro não for fornecido.
Por exemplo:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains obteria todos os domínios.
Por exemplo:
- Go
res, _ := e.GetAllDomains()
Se você está lidando com um domínio como name::domain
, isso pode levar a um comportamento inesperado. No Casbin, ::
é uma palavra reservada, assim como for
, if
em uma linguagem de programação, nunca devemos colocar ::
em um domínio.
GetAllRolesByDomain()
GetAllRolesByDomain obteria todas as funções associadas com o domínio.
Por exemplo:
- Go
res := e.GetAllRolesByDomain("domain1")
Este método não se aplica a domínios que têm uma relação de herança, também conhecidos como funções implícitas.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain retorna usuário implícito baseado no recurso e domínio.
Por exemplo:
p, admin, domain1, data1, read
p, admin, domain1, data1, write
p, admin, domain2, data2, read
p, admin, domain2, data2, write
g, alice, admin, domain1
g, bob, admin, domain2
GetImplicitUsersForResourceByDomain("data1", "domain1") retornará ["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
Apenas usuários serão retornados, funções (2º arg em "g") serão excluídas.