ProBusinessEnterprise

نموذج الصلاحيات: 57 إذناً

مبدأ العمل

يعتمد نظام الصلاحيات في tikento على النموذج التراكمي: الصلاحيات النهائية للمستخدم هي اتحاد (union) صلاحيات جميع الأدوار المعيّنة له. تُضاف الصلاحيات فقط ولا تُسلب أبداً.

مثال: إذا عُيّن للمستخدم دورا Manager وFinance، يحصل على جميع صلاحيات Manager (الفعاليات، التسجيلات، تسجيل الحضور) بالإضافة إلى جميع صلاحيات Finance (المدفوعات، التقارير، الاستردادات).

السياقات الثلاثة للأدوار

يعمل كل دور في tikento ضمن أحد السياقات الثلاثة التي تحدد نطاق الصلاحيات:

السياق العام

أدوار على مستوى المنصة. تُستخدم لإدارة منصة tikento نفسها. غير متاحة للمنظمين العاديين.

سياق المستأجر (المؤسسة)

السياق الرئيسي لعمل الفريق. يعمل الدور على مستوى المؤسسة بأكملها ويمتد إلى جميع فعالياتها.

أمثلة:

  • Admin على مستوى المؤسسة — وصول لجميع الفعاليات والإعدادات
  • Finance على مستوى المؤسسة — عرض المالية لجميع الفعاليات

سياق الفعالية

الدور مقيّد بفعالية محددة. يرى المستخدم فقط الفعالية المرتبطة بدوره.

أمثلة:

  • Manager على مستوى الفعالية — إدارة فعالية واحدة فقط
  • Support على مستوى الفعالية — تسجيل الحضور في فعالية محددة فقط

الأذونات الذرية

يحتوي النظام على 57 إذناً ذرياً مصنفة حسب المجالات:

الفعاليات

الإذنالوصف
EVENT_CREATEإنشاء فعالية جديدة
EVENT_UPDATEتعديل الفعالية
EVENT_DELETEحذف الفعالية
EVENT_PUBLISHنشر الفعالية
EVENT_VIEWعرض الفعالية

التسجيلات

الإذنالوصف
REGISTRATION_VIEWعرض قائمة المشاركين
REGISTRATION_MANAGEتأكيد وإلغاء التسجيلات
REGISTRATION_EXPORTتصدير قائمة المشاركين
CHECKIN_MANAGEتسجيل حضور المشاركين

المدفوعات

الإذنالوصف
PAYMENT_VIEWعرض المدفوعات
PAYMENT_REFUNDبدء عمليات الاسترداد
PAYMENT_GATEWAY_MANAGEإعداد بوابات الدفع

النماذج

الإذنالوصف
FORM_CREATEإنشاء نموذج تسجيل
FORM_UPDATEتعديل النموذج
FORM_DELETEحذف النموذج

الفريق

الإذنالوصف
TEAM_INVITEدعوة إلى الفريق
TEAM_REMOVEإزالة من الفريق
ROLE_ASSIGNتعيين الأدوار

الإشعارات

الإذنالوصف
NOTIFICATION_SENDالإرسال اليدوي
NOTIFICATION_TEMPLATE_MANAGEتعديل القوالب

التقارير

الإذنالوصف
REPORT_VIEWعرض التقارير
REPORT_EXPORTتصدير التقارير

التجارب

الإذنالوصف
EXPERIMENT_MANAGEإنشاء وإدارة تجارب A/B (Business وأعلى)

الفوترة

الإذنالوصف
BILLING_MANAGEإدارة الخطة والدفع (Owner فقط)

القائمة الكاملة المكونة من 57 إذناً متاحة في قسم الإعدادات -> الفريق -> الصلاحيات (لخطط Business وEnterprise).

الأدوار المؤقتة

يمكنك تعيين دور بمدة محدودة. هذا مفيد لـ:

  • المتطوعين في الفعالية — دور Support ليوم أو يومين من الفعالية
  • المديرين المؤقتين — دور Manager لفترة التحضير للفعالية
  • المدققين — دور Finance لفترة المراجعة

كيفية تعيين دور مؤقت

  1. انتقل إلى الإعدادات -> الفريق.
  2. اختر عضو الفريق.
  3. عند تعيين الدور فعّل مفتاح تقييد بالوقت.
  4. حدد تاريخ ووقت انتهاء الدور.
  5. اضغط حفظ.

بعد حلول الوقت المحدد يتم إلغاء تفعيل الدور تلقائياً. يفقد المستخدم الصلاحيات المقابلة لكنه يبقى عضواً في الفريق. يُحفظ سجل الدور المؤقت في سجل التدقيق.

التخزين المؤقت للصلاحيات

لضمان سرعة التحقق من الصلاحيات، يتم تخزينها مؤقتاً في Redis:

  • مفتاح التخزين المؤقت: perms:{tenantId}:{userId}:{eventId}
  • مدة التخزين المؤقت (TTL): 60 ثانية
  • عند تغيير الدور يتم إبطال التخزين المؤقت تلقائياً

عملياً هذا يعني أنه بعد تغيير الدور تُطبَّق الصلاحيات الجديدة خلال دقيقة واحدة كحد أقصى. لا يحتاج المستخدم لتسجيل الخروج من النظام وإعادة الدخول.

التحقق من الصلاحيات

يمكن للمنظم التحقق من صلاحيات كل عضو في الفريق:

  1. انتقل إلى الإعدادات -> الفريق.
  2. اضغط على اسم المشارك.
  3. في قسم الصلاحيات الفعلية تُعرض القائمة الكاملة للصلاحيات مع مراعاة جميع الأدوار المعيّنة.

الصلاحيات المكتسبة من أدوار مختلفة تُوسم بالعلامات المناسبة.

الأسئلة الشائعة

ماذا يعني النموذج التراكمي للصلاحيات؟
يعني أن الصلاحيات تُضاف فقط ولا تُسلب أبداً. إذا كان للمستخدم دوران، فإن صلاحياته النهائية هي اتحاد (union) صلاحيات كلا الدورين. لا يمكن تعيين دور يسلب صلاحية ممنوحة من دور آخر.
ما مدى سرعة تطبيق تغييرات الصلاحيات؟
يتم تخزين الصلاحيات مؤقتاً في Redis بمدة TTL 60 ثانية. بعد تغيير دور المستخدم، تُطبَّق الصلاحيات الجديدة خلال دقيقة واحدة كحد أقصى. لا يحتاج المستخدم لتسجيل الخروج وإعادة الدخول.
ما هو الدور المؤقت؟
دور بتاريخ انتهاء محدد (حقل expires_at). على سبيل المثال، يمكنك تعيين دور Support لمتطوع ليوم واحد من الفعالية. بعد انتهاء المدة يتم إلغاء تفعيل الدور تلقائياً.