RBAC API
The RBAC API is a convenience layer for role-based operations (roles for user, users for role, permissions, etc.). It is a subset of the Management API aimed at RBAC use cases.
Referans
The global variable e represents an Enforcer instance.
e, err := NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
const e = await newEnforcer('examples/rbac_model.conf', 'examples/rbac_policy.csv')
$e = new Enforcer('examples/rbac_model.conf', 'examples/rbac_policy.csv');
e = casbin.Enforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
var e = new Enforcer("path/to/model.conf", "path/to/policy.csv");
let mut e = Enforcer::new("examples/rbac_model.conf", "examples/rbac_policy.csv").await?;
Enforcer e = new Enforcer("examples/rbac_model.conf", "examples/rbac_policy.csv");
GetRolesForUser()
Retrieves all roles assigned to a user.
Örneğin:
res := e.GetRolesForUser("alice")
const res = await e.getRolesForUser('alice')
$res = $e->getRolesForUser("alice");
roles = e.get_roles_for_user("alice")
var res = e.GetRolesForUser("alice");
let roles = e.get_roles_for_user("alice", None); // No domain
List<String> res = e.getRolesForUser("alice");
GetUsersForRole()
Retrieves all users assigned to a role.
Örneğin:
res := e.GetUsersForRole("data1_admin")
const res = await e.getUsersForRole('data1_admin')
$res = $e->getUsersForRole("data1_admin");
users = e.get_users_for_role("data1_admin")
var res = e.GetUsersForRole("data1_admin");
let users = e.get_users_for_role("data1_admin", None); // No domain
List<String> res = e.getUsersForRole("data1_admin");
HasRoleForUser()
Checks whether a user has a specific role.
Örneğin:
res := e.HasRoleForUser("alice", "data1_admin")
const res = await e.hasRoleForUser('alice', 'data1_admin')
$res = $e->hasRoleForUser("alice", "data1_admin");
has = e.has_role_for_user("alice", "data1_admin")
var res = e.HasRoleForUser("alice", "data1_admin");
let has = e.has_role_for_user("alice", "data1_admin", None); // No domain
boolean res = e.hasRoleForUser("alice", "data1_admin");
AddRoleForUser()
Assigns a role to a user. Kullanıcı zaten rolü sahipse false döner (yani etkilenmez).
Örneğin:
e.AddRoleForUser("alice", "data2_admin")
await e.addRoleForUser('alice', 'data2_admin')
$e->addRoleForUser("alice", "data2_admin");
e.add_role_for_user("alice", "data2_admin")
var added = e.AddRoleForUser("alice", "data2_admin");
or
var added = await e.AddRoleForUserAsync("alice", "data2_admin");
let added = e.add_role_for_user("alice", "data2_admin", None).await?; // No domain
boolean added = e.addRoleForUser("alice", "data2_admin");
AddRolesForUser()
Assigns multiple roles to a user. Kullanıcının zaten bu rollerden birine sahip olması durumunda false döner (yani etkilenmez).
Örneğin:
var roles = []string{"data2_admin", "data1_admin"}
e.AddRolesForUser("alice", roles)
const roles = ["data1_admin", "data2_admin"];
roles.map((role) => e.addRoleForUser("alice", role));
var roles = new List<string> { "data1_admin", "data2_admin" };
var allAdded = e.AddRolesForUser("alice", roles);
// or async
var allAdded = await e.AddRolesForUserAsync("alice", roles);
let roles = vec!["data1_admin".to_owned(), "data2_admin".to_owned()];
let all_added = e.add_roles_for_user("alice", roles, None).await?; // No domain
DeleteRoleForUser()
Removes a role from a user. Kullanıcının rolü olmadığı takdirde false döner (yani etkilenmez).
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.DeleteRoleForUser("alice", "data1_admin")
await e.deleteRoleForUser('alice', 'data1_admin')
$e->deleteRoleForUser("alice", "data1_admin");
e.delete_role_for_user("alice", "data1_admin")
var deleted = e.DeleteRoleForUser("alice", "data1_admin");
or
var deleted = await e.DeleteRoleForUser("alice", "data1_admin");
let deleted = e.delete_role_for_user("alice", "data1_admin", None).await?; // No domain
boolean deleted = e.deleteRoleForUser("alice", "data1_admin");
DeleteRolesForUser()
Removes all roles from a user. Kullanıcının hiç rolü olmadığı takdirde false döner (yani etkilenmez).
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.DeleteRolesForUser("alice")
await e.deleteRolesForUser('alice')
$e->deleteRolesForUser("alice");
e.delete_roles_for_user("alice")
var deletedAtLeastOne = e.DeleteRolesForUser("alice");
or
var deletedAtLeastOne = await e.DeleteRolesForUserAsync("alice");
let deleted_at_least_one = e.delete_roles_for_user("alice", None).await?; // No domain
boolean deletedAtLeastOne = e.deleteRolesForUser("alice");
DeleteUser()
Removes a user from the system. Kullanıcı yoksa (yani etkilenmemişse) false döner.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.DeleteUser("alice")
await e.deleteUser('alice')
$e->deleteUser("alice");
e.delete_user("alice")
var deleted = e.DeleteUser("alice");
or
var deleted = await e.DeleteUserAsync("alice");
let deleted = e.delete_user("alice").await?;
boolean deleted = e.deleteUser("alice");
DeleteRole()
Removes a role from the system.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.DeleteRole("data2_admin")
await e.deleteRole("data2_admin")
$e->deleteRole("data2_admin");
e.delete_role("data2_admin")
var deleted = e.DeleteRole("data2_admin");
or
var deleted = await e.DeleteRoleAsync("data2_admin");
let deleted = e.delete_role("data2_admin").await?;
e.deleteRole("data2_admin");
DeletePermission()
Removes a permission from the system. İzin yoksa (yani etkilenmemişse) false döner.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.DeletePermission("read")
await e.deletePermission('read')
$e->deletePermission("read");
e.delete_permission("read")
var deleted = e.DeletePermission("read");
or
var deleted = await e.DeletePermissionAsync("read");
let deleted = e.delete_permission(vec!["read".to_owned()]).await?;
boolean deleted = e.deletePermission("read");
AddPermissionForUser()
Grants a permission to a user or role. Kullanıcı veya rol zaten izne sahipse false döndürür (yani etkilenmez).
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.AddPermissionForUser("bob", "read")
await e.addPermissionForUser('bob', 'read')
$e->addPermissionForUser("bob", "read");
e.add_permission_for_user("bob", "read")
var added = e.AddPermissionForUser("bob", "read");
or
var added = await e.AddPermissionForUserAsync("bob", "read");
let added = e.add_permission_for_user("bob", vec!["read".to_owned()]).await?;
boolean added = e.addPermissionForUser("bob", "read");
AddPermissionsForUser()
Grants multiple permissions to a user or role. Kullanıcı veya rol zaten izinlerden birine sahipse false döndürür (yani etkilenmez).
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
var permissions = [][]string{{"data1", "read"},{"data2","write"}}
for i := 0; i < len(permissions); i++ {
e.AddPermissionsForUser("alice", permissions[i])
}
const permissions = [
["data1", "read"],
["data2", "write"],
];
permissions.map((permission) => e.addPermissionForUser("bob", ...permission));
var permissions = new List<List<string>>
{
new List<string> { "data1", "read" },
new List<string> { "data2", "write" }
};
foreach (var permission in permissions)
{
var added = e.AddPermissionForUser("bob", permission.ToArray());
// or async
var added = await e.AddPermissionForUserAsync("bob", permission.ToArray());
}
let permissions = vec![
vec!["data1".to_owned(), "read".to_owned()],
vec!["data2".to_owned(), "write".to_owned()],
];
let all_added = e.add_permissions_for_user("bob", permissions).await?;
DeletePermissionForUser()
Revokes a permission from a user or role. Kullanıcı veya rol izne sahip değilse (yani etkilenmemişse) false döner.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.DeletePermissionForUser("bob", "read")
await e.deletePermissionForUser("bob", "read")
$e->deletePermissionForUser("bob", "read");
e.delete_permission_for_user("bob", "read")
var deleted = e.DeletePermissionForUser("bob", "read");
or
var deleted = await e.DeletePermissionForUserAsync("bob", "read");
let deleted = e.delete_permission_for_user("bob", vec!["read".to_owned()]).await?;
boolean deleted = e.deletePermissionForUser("bob", "read");
DeletePermissionsForUser()
Revokes all permissions from a user or role. Kullanıcı veya rolün herhangi bir izni yoksa (yani etkilenmemişse) false döner.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.DeletePermissionsForUser("bob")
await e.deletePermissionsForUser('bob')
$e->deletePermissionsForUser("bob");
e.delete_permissions_for_user("bob")
var deletedAtLeastOne = e.DeletePermissionsForUser("bob");
or
var deletedAtLeastOne = await e.DeletePermissionsForUserAsync("bob");
let deleted_at_least_one = e.delete_permissions_for_user("bob").await?;
boolean deletedAtLeastOne = e.deletePermissionForUser("bob");
GetPermissionsForUser()
Retrieves all permissions for a user or role.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.GetPermissionsForUser("bob")
await e.getPermissionsForUser('bob')
$e->getPermissionsForUser("bob");
e.get_permissions_for_user("bob")
var permissions = e.GetPermissionsForUser("bob");
List<List<String>> permissions = e.getPermissionsForUser("bob");
GetNamedPermissionsForUser()
GetNamedPermissionsForUser gets permissions for a user or role by named policy.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, alice, data1, read
p, bob, data2, write
p2, admin, create
g, alice, admin
GetNamedPermissionsForUser("p", "alice") will return [["alice", "data1", "read"]].
GetNamedPermissionsForUser("p2", "alice") will return [["admin", "create"]].
permissions, err := e.GetNamedPermissionsForUser("p", "alice")
var permissions = e.GetNamedPermissionsForUser("p", "alice");
permissions = e.get_named_permissions_for_user("p", "alice")
HasPermissionForUser()
KullaniciIcinIzinVarMi, bir kullanıcının bir izne sahip olup olmadığını belirler.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.HasPermissionForUser("alice", []string{"read"})
await e.hasPermissionForUser('alice', 'read')
$e->hasPermissionForUser("alice", []string{"read"});
has = e.has_permission_for_user("alice", "read")
var has = e.HasPermissionForUser("bob", "read");
let has = e.has_permission_for_user("alice", vec!["data1".to_owned(), "read".to_owned()]);
boolean has = e.hasPermissionForUser("alice", "read");
GetImplicitRolesForUser()
KullaniciyaOlanGizliRolleriGetir, bir kullanıcının sahip olduğu gizli rollerini alır. GetRolesForUser() ile karşılaştırıldığında, bu fonksiyon doğrudan rollerin yanı sıra dolaylı rolleride alır.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
g, alice, role:admin
g, role:admin, role:user
GetRolesForUser("alice") sadece şunları alabilir: ["role:admin"].
Ama GetImplicitRolesForUser("alice") şunları alacak: ["role:admin", "role:user"].
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.GetImplicitRolesForUser("alice")
await e.getImplicitRolesForUser("alice")
$e->getImplicitRolesForUser("alice");
e.get_implicit_roles_for_user("alice")
var implicitRoles = e.GetImplicitRolesForUser("alice");
e.get_implicit_roles_for_user("alice", None); // No domain
List<String> implicitRoles = e.getImplicitRolesForUser("alice");
GetNamedImplicitRolesForUser()
GetNamedImplicitRolesForUser gets implicit roles that a user has by named policy.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
g, alice, admin
g, admin, super_admin
g2, alice, user
g2, user, guest
GetNamedImplicitRolesForUser("g", "alice") will return ["admin", "super_admin"].
GetNamedImplicitRolesForUser("g2", "alice") will return ["user", "guest"].
roles, err := e.GetNamedImplicitRolesForUser("g", "alice")
var roles = e.GetNamedImplicitRolesForUser("g", "alice");
roles = e.get_named_implicit_roles_for_user("g", "alice")
GetImplicitUsersForRole()
GetImplicitUsersForRole, rolü miras alan tüm kullanıcıları alır. GetUsersForRole() ile karşılaştırıldığında, bu fonksiyon dolaylı kullanıcıları alır.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
g, alice, role:admin
g, role:admin, role:user
GetUsersForRole("role:user") sadece şunları alabilir: ["role:admin"].
Ancak GetImplicitUsersForRole("role:user") şunları alacak: ["role:admin", "alice"].
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
users := e.GetImplicitUsersForRole("role:user")
const users = e.getImplicitUsersForRole("role:user");
List<String> users = e.getImplicitUsersForRole("role:user");
GetImplicitPermissionsForUser()
GetImplicitPermissionsForUser, bir kullanıcı veya rol için örtük izinleri alır.
GetPermissionsForUser() ile karşılaştırıldığında, bu fonksiyon miras alınan roller için izinleri alır.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, admin, data1, read
p, alice, data2, read
g, alice, admin
GetPermissionsForUser("alice") sadece şunları alabilir: [["alice", "data2", "read"]].
Ancak GetImplicitPermissionsForUser("alice") şunları alacak: [["admin", "data1", "read"], ["alice", "data2", "read"]].
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
e.GetImplicitPermissionsForUser("alice")
await e.getImplicitPermissionsForUser("alice")
$e->getImplicitPermissionsForUser("alice");
e.get_implicit_permissions_for_user("alice")
var implicitPermissions = e.GetImplicitPermissionsForUser("alice");
e.get_implicit_permissions_for_user("alice", None); // No domain
List<List<String>> implicitPermissions = e.getImplicitPermissionsForUser("alice");
GetNamedImplicitPermissionsForUser()
GetNamedImplicitPermissionsForUser, bir kullanıcı veya rol için adlandırılmış politikaya göre örtük izinleri alır. GetImplicitPermissionsForUser()'a kıyasla, bu fonksiyonun politikayı belirtmenize izin verdiğini görüyoruz.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, admin, data1, read
p2, admin, create
g, alice, admin
GetImplicitPermissionsForUser("alice") sadece şunları alır: [["admin", "data1", "read"]], politikası varsayılan "p" olanlar.
Ancak politikayı "p2" olarak belirleyerek GetNamedImplicitPermissionsForUser("p2","alice") ile şunları alabilirsiniz: [["admin", "create"]]
Örneğin:
e.GetNamedImplicitPermissionsForUser("p2","alice")
var permissions = e.GetNamedImplicitPermissionsForUser("p2", "alice");
e.get_named_implicit_permissions_for_user("p2", "alice")
GetDomainsForUser()
GetDomainsForUser, bir kullanıcının sahip olduğu tüm alanları alır.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, admin, domain1, data1, read
p, admin, domain2, data2, read
p, admin, domain2, data2, write
g, alice, admin, domain1
g, alice, admin, domain2
GetDomainsForUser("alice") şunları alabilir: ["domain1", "domain2"]
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
result, err := e.GetDomainsForUser("alice")
var result = e.GetDomainsForUser("alice");
GetImplicitResourcesForUser()
Returns all policies that apply to a user, including those inherited through roles.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
GetImplicitResourcesForUser("alice") şunu döndürecektir:
resources, err := e.GetImplicitResourcesForUser("alice")
var resources = e.GetImplicitResourcesForUser("alice");
GetImplicitUsersForPermission()
Retrieves all users with a specific permission, including those with implicit permissions through roles.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, admin, data1, read
p, bob, data1, read
g, alice, admin
GetImplicitUsersForPermission("data1", "read") şunları döndürecektir: ["alice", "bob"].
Not: Yalnızca kullanıcılar döndürülecektir, roller ("g" içindeki 2. argüman) dahil edilmeyecektir.
users, err := e.GetImplicitUsersForPermission("data1", "read")
var users = e.GetImplicitUsersForPermission("data1", "read");
GetImplicitObjectPatternsForUser()
Returns all object patterns (including wildcards) that a user can access for a given domain and action.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, admin, chronicle/123, location/*, read
p, user, chronicle/456, location/789, read
g, alice, admin
g, bob, user
GetImplicitObjectPatternsForUser("alice", "chronicle/123", "read") will return ["location/*"].
GetImplicitObjectPatternsForUser("bob", "chronicle/456", "read") will return ["location/789"].
patterns, err := e.GetImplicitObjectPatternsForUser("alice", "chronicle/123", "read")
const patterns = await e.getImplicitObjectPatternsForUser("alice", "chronicle/123", "read")
$patterns = $e->getImplicitObjectPatternsForUser("alice", "chronicle/123", "read");
patterns = e.get_implicit_object_patterns_for_user("alice", "chronicle/123", "read")
var patterns = e.GetImplicitObjectPatternsForUser("alice", "chronicle/123", "read");
let patterns = e.get_implicit_object_patterns_for_user("alice", "chronicle/123", "read").await?;
List<String> patterns = e.getImplicitObjectPatternsForUser("alice", "chronicle/123", "read");
GetAllowedObjectConditions()
Returns object conditions that a user can access.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, alice, r.obj.price < 25, read
p, admin, r.obj.category_id = 2, read
p, bob, r.obj.author = bob, write
g, alice, admin
e.GetAllowedObjectConditions("alice", "read", "r.obj.") şunları döndürecektir: ["price < 25", "category_id = 2"], nil
Not:
-
ön ek: Nesne koşullarının ön ekini özelleştirebilirsiniz ve "r.obj." genellikle bir ön ek olarak kullanılır. Ön eki kaldırdıktan sonra, kalan kısım nesnenin koşuludur. Eğer ön ek gereksinimini karşılamayan bir obj politika varsa,
errors.ERR_OBJ_CONDITIONdöndürülecektir. -
Eğer 'objectConditions' dizisi boşsa,
errors.ERR_EMPTY_CONDITIONdöndürün.
conditions, err := e.GetAllowedObjectConditions("alice", "read", "r.obj.")
var conditions = e.GetAllowedObjectConditions("alice", "read", "r.obj.");
GetImplicitUsersForResource()
Returns all users with access to a resource, including those with implicit permissions through roles.
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, alice, data1, read
p, bob, data2, write
p, data2_admin, data2, read
p, data2_admin, data2, write
g, alice, data2_admin
Örneğin:
GetImplicitUsersForResource("data2") şunu döndürecektir: [["bob", "data2", "write"], ["alice", "data2", "read"] ["alice", "data2", "write"]], nil.
ImplicitUsers, err := e.GetImplicitUsersForResource("data2")
var implicitUsers = e.GetImplicitUsersForResource("data2");
Yalnızca kullanıcılar döndürülecektir, roller ("g" içindeki 2. argüman) dışlanacaktır.
GetNamedImplicitUsersForResource()
Returns all users with access to a resource through a named policy, including those with implicit permissions through roles. This function handles resource role relationships through named policies (e.g., g2, g3, etc.).
GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.
p, admin_group, admin_data, *
g, admin, admin_group
g2, app, admin_data
GetNamedImplicitUsersForResource("g2", "app") will return users who have access to admin_data through g2 relationship.
ImplicitUsers, err := e.GetNamedImplicitUsersForResource("g2", "app")
var implicitUsers = e.GetNamedImplicitUsersForResource("g2", "app");
Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.