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