عضوية المجموعة والأذونات المحددة
يتم تتبع الارتباط والقيادة داخل المجموعات على مستوى الاتصال الفردي عبر تقاطع “أعضاء_المجموعة”.
1. أدوار المجموعة (الدور)
يتم تعيين دور لكل عضو في المجموعة في “group_members” والذي يحدد قدراته وتعيين الدليل:
القائد: الخادم الرئيسي المسؤول عن المجموعة. لديه حق الوصول لإدارة القوائم وتحرير التفاصيل وتسجيل حضور الاجتماع.co_leader: قائد مساعد يتمتع بصلاحية تشغيلية مماثلة لدعم أنشطة المجموعة.العضو: المشارك العام المسجل في المجموعة.المتطوع: مساعد أو خادم عرضي ملحق بالمجموعة.
2. أذونات RBAC على نطاق المجموعة
يدعم نظام RBAC الديناميكي الخاص بشركة Kononia منح إذن تحديد النطاق لكيانات محددة. يتم تعريف ذلك في public.user_church_roles باستخدام عمود group_id.
[جلسة المستخدم]
│
├─► الدور العام: (group_id = NULL) ──► الوصول الشامل (جميع المجموعات)
│
└─► الدور المحدد: (group_id = 123) ──► الوصول المحدد (المجموعة 123 فقط)
الوصول إلى القيادة ضمن النطاق
- إدارة القائمة والتفاصيل: المستخدم الذي يتمتع بدور “خادم المجموعة” الذي تم تحديد نطاقه لمعرف
group_idمحدد، يرث أذوناتgroups.viewوgroups.manageفقط لهذه المجموعة. - عزل التحكم الإداري: يمكن للقادة ذوي النطاق إضافة أعضاء، وتحديث تفاصيل الاجتماع، ومراجعة التقارير للمجموعة المخصصة لهم، ولكنهم محظورون على تحرير المجموعات الأخرى في المؤسسة أو عرضها.
- تحليل واجهة المستخدم: يقوم الخطاف
usePermissionsبتقييم النطاقات تلقائيًا عبرcanForGroup(permissionKey, groupId)، مما يتيح عناصر التحكم بشكل انتقائي في صفحات تفاصيل المجموعة.