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)