Ana içeriğe atla

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")

GetRolesForUser()​

Retrieves all roles assigned to a user.

Örneğin:

res := e.GetRolesForUser("alice")

GetUsersForRole()​

Retrieves all users assigned to a role.

Örneğin:

res := e.GetUsersForRole("data1_admin")

HasRoleForUser()​

Checks whether a user has a specific role.

Örneğin:

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")

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)

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")

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")

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")

DeleteRole()​

Removes a role from the system.

GetImplicitUsersForResource, kaynağa göre örtülü kullanıcı döndürür.

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")

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")

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])
}

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")

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")

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")

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")

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"})

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")

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")

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")

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")

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")

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")

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")

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")

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")

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:

  1. ö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_CONDITION döndürülecektir.

  2. Eğer 'objectConditions' dizisi boşsa, errors.ERR_EMPTY_CONDITION döndürün.

conditions, err := 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")
not

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")

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.