التخطي إلى المحتوى الرئيسي

RoleManager API

RoleManager

يوفر RoleManager واجهة لتعريف العمليات لإدارة الأدوار. إضافة وظيفة مطابقة إلى RoleManager تسمح باستخدام البدائل في أسماء الأدوار والنطاقات.

AddNamedMatchingFunc()

الدالة AddNamedMatchingFunc تضيف MatchingFunc بواسطة Ptype إلى RoleManager. سيتم استخدام MatchingFunc عند أداء مطابقة الدور.

    e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil

على سبيل المثال:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)

AddNamedDomainMatchingFunc()

الدالة AddNamedDomainMatchingFunc تضيف MatchingFunc بواسطة Ptype إلى RoleManager. DomainMatchingFunc مشابهة لـ MatchingFunc المذكورة أعلاه.

على سبيل المثال:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)

GetRoleManager()

الدالة GetRoleManager تحصل على مدير الأدوار الحالي لـ g.

على سبيل المثال:

    rm := e.GetRoleManager()

GetNamedRoleManager()

الدالة GetNamedRoleManager تحصل على مدير الأدوار بواسطة Ptype المسمى.

على سبيل المثال:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

الدالة SetRoleManager تضبط مدير الأدوار الحالي لـ g.

على سبيل المثال:

    e.SetRoleManager(rm)

SetNamedRoleManager()

الدالة SetNamedRoleManager تضبط مدير الأدوار بواسطة Ptype المسمى.

على سبيل المثال:

    rm := e.SetNamedRoleManager("g2", rm)

Clear()

الدالة Clear تمسح جميع البيانات المخزنة وتعيد مدير الأدوار إلى حالته الأولية.

على سبيل المثال:

    rm.Clear()

تضيف AddLink رابط الوراثة بين دورين. الدور: name1 والدور: name2. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).

على سبيل المثال:

    rm.AddLink("u1", "g1", "domain1")

تحذف DeleteLink رابط الوراثة بين دورين. الدور: name1 والدور: name2. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).

على سبيل المثال:

    rm.DeleteLink("u1", "g1", "domain1")

تحدد HasLink ما إذا كان هناك رابط بين دورين. الدور: name1 يرث الدور: name2. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).

على سبيل المثال:

    rm.HasLink("u1", "g1", "domain1")

GetRoles()

تحصل GetRoles على الأدوار التي يرثها المستخدم. النطاق هو بادئة للأدوار (يمكن استخدامها لأغراض أخرى).

على سبيل المثال:

    rm.GetRoles("u1", "domain1")

GetUsers()

تحصل GetUsers على المستخدمين الذين يرثون دورًا. النطاق هو بادئة للمستخدمين (يمكن استخدامها لأغراض أخرى).

على سبيل المثال:

    rm.GetUsers("g1")

PrintRoles()

تطبع PrintRoles جميع الأدوار إلى السجل.

على سبيل المثال:

    rm.PrintRoles()

SetLogger()

تضبط SetLogger سجل مدير الأدوار.

على سبيل المثال:

    logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()

GetDomains()

تحصل GetDomains على النطاقات التي يمتلكها المستخدم

على سبيل المثال:

    result, err := rm.GetDomains(name)