RoleManager API
RoleManager
يوفر RoleManager واجهة لتعريف العمليات لإدارة الأدوار. إضافة وظيفة مطابقة إلى RoleManager تسمح باستخدام البدائل في أسماء الأدوار والنطاقات.
AddNamedMatchingFunc()
الدالة AddNamedMatchingFunc
تضيف MatchingFunc
بواسطة Ptype إلى RoleManager. سيتم استخدام MatchingFunc
عند أداء مطابقة الدور.
- Go
- Node.js
e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
await e.addGroupingPolicies([['*', 'admin', 'domain1']]);
await e.getRoleManager().hasLink('bob', 'admin', 'domain1');
على سبيل المثال:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
AddNamedDomainMatchingFunc()
الدالة AddNamedDomainMatchingFunc
تضيف MatchingFunc
بواسطة Ptype إلى RoleManager. DomainMatchingFunc
مشابهة لـ MatchingFunc
المذكورة أعلاه.
على سبيل المثال:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedDomainMatchingFunc('g', Util.keyMatchFunc);
GetRoleManager()
الدالة GetRoleManager
تحصل على مدير الأدوار الحالي لـ g
.
على سبيل المثال:
- Go
- Node.js
- Python
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
GetNamedRoleManager()
الدالة GetNamedRoleManager
تحصل على مدير الأدوار بواسطة Ptype المسمى.
على سبيل المثال:
- Go
- Node.js
- Python
rm := e.GetNamedRoleManager("g2")
const rm = await e.getNamedRoleManager("g2");
rm = e.get_named_role_manager("g2")
SetRoleManager()
الدالة SetRoleManager
تضبط مدير الأدوار الحالي لـ g
.
على سبيل المثال:
- Go
- Node.js
- Python
e.SetRoleManager(rm)
e.setRoleManager(rm);
rm = e.set_role_manager(rm)
SetNamedRoleManager()
الدالة SetNamedRoleManager
تضبط مدير الأدوار بواسطة Ptype المسمى.
على سبيل المثال:
- Go
- Python
rm := e.SetNamedRoleManager("g2", rm)
rm = e.set_role_manager("g2", rm)
Clear()
الدالة Clear
تمسح جميع البيانات المخزنة وتعيد مدير الأدوار إلى حالته الأولية.
على سبيل المثال:
- Go
- Node.js
- Python
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
تضيف AddLink رابط الوراثة بين دورين. الدور: name1 والدور: name2. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).
على سبيل المثال:
- Go
- Node.js
- Python
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
DeleteLink()
تحذف DeleteLink رابط الوراثة بين دورين. الدور: name1 والدور: name2. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).
على سبيل المثال:
- Go
- Node.js
- Python
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
تحدد HasLink ما إذا كان هناك رابط بين دورين. الدور: name1 يرث الدور: name2. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).
على سبيل المثال:
- Go
- Node.js
- Python
rm.HasLink("u1", "g1", "domain1")
await rm.hasLink('u1', 'g1', 'domain1');
rm.has_link("u1", "g1", "domain1")
GetRoles()
تحصل GetRoles على الأدوار التي يرثها المستخدم. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).
على سبيل المثال:
- Go
- Node.js
- Python
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
GetUsers()
تحصل GetUsers على المستخدمين الذين يرثون دورًا. النطاق هو بادئة للمستخدمين (يمكن استخدامها لأغراض أخرى).
على سبيل المثال:
- Go
- Node.js
- Python
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
PrintRoles()
تطبع PrintRoles جميع الأدوار إلى السجل.
على سبيل المثال:
- Go
- Node.js
- Python
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
تضبط SetLogger سجل مدير الأدوار.
على سبيل المثال:
- Go
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
تحصل GetDomains على النطاقات التي يمتلكها المستخدم
على سبيل المثال:
- Go
result, err := rm.GetDomains(name)