القطاعات والخدمات الكنسية

عضوية الوزارة وأدوار الإدارة

تتم إدارة أدوار الاتصال وواجبات الخدمة المتخصصة داخل الأقسام في جدول 'أعضاء_الوزارة'.

عضوية الوزارة وأدوار الإدارة

تتم إدارة أدوار الاتصال وواجبات الخدمة المتخصصة داخل الأقسام في جدول “أعضاء_الوزارة”.


1. قوائم الوزارة (أعضاء_الوزارة)

يتم تسجيل جهة الاتصال في الوزارة عن طريق إنشاء سجل في public.ministry_members.

حقول المخطط الأساسية

  • ministry_id (uuid): يشير إلى القسم الأصلي.
  • person_id (uuid): يشير إلى الملف الشخصي للعضو.
  • الدور (النص): الواجب أو المهمة المحددة داخل الوزارة (الإعداد الافتراضي هو “العضو’`).
  • انضم_في (timestamptz): عندما تم إضافة العضو إلى الوزارة.

تخصص الدور

على عكس أدوار المجموعة التي تستخدم التعدادات الصارمة، فإن أدوار الوزارة هي حقول نصية مفتوحة. يتيح ذلك للمؤسسات تحديد الأدوار المخصصة التي تتوافق مع سير العمل الخاص بها:

  • قسم العبادات: المغني الرئيسي، عازف الجيتار الصوتي، مهندس الصوت.
  • قسم الوسائط: مشغل الكاميرا، وحدة التحكم بالشرائح، مسؤول البث.
  • قسم المرشدين: المرحب، قائد القسم، المنسق الأمني.

2. الأذونات على مستوى الوزارة (service_id)

يدعم نظام RBAC الديناميكي تحديد نطاق مفاتيح الأذونات (مثل ministries.manage) لوزارات محددة. تم تكوين هذه المهمة في “user_church_roles” عبر عمود “service_id”.

[جلسة المستخدم]

      ├─► الدور العالمي: (service_id = NULL) ──► الوصول الكامل للمؤسسة

      └─► الدور المحدد: (service_id = 999) ──► الوصول المحدد (الوزارة 999 فقط)

العمليات ذات النطاق

  • استقلالية القسم: يحصل قائد الفريق الذي له دور محدد على service_id محدد على أذونات الإدارة الكاملة (مثل تحرير القوائم أو إنشاء الجداول الزمنية) فقط لقسمه.
  • حماية البيانات: يُمنع قادة النطاق من عرض قوائم الأقسام الأخرى أو تحريرها.
  • تكامل الواجهة الأمامية: يعمل الخطاف usePermissions على حل هذه النطاقات من خلال الأسلوب المساعد canForService(permissionKey,serviceId)، مما يؤدي إلى تمكين عناصر التحكم أو تعطيلها ديناميكيًا.