مبدأ العمل
يعتمد نظام الصلاحيات في 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 لفترة المراجعة
كيفية تعيين دور مؤقت
- انتقل إلى الإعدادات -> الفريق.
- اختر عضو الفريق.
- عند تعيين الدور فعّل مفتاح تقييد بالوقت.
- حدد تاريخ ووقت انتهاء الدور.
- اضغط حفظ.
بعد حلول الوقت المحدد يتم إلغاء تفعيل الدور تلقائياً. يفقد المستخدم الصلاحيات المقابلة لكنه يبقى عضواً في الفريق. يُحفظ سجل الدور المؤقت في سجل التدقيق.
التخزين المؤقت للصلاحيات
لضمان سرعة التحقق من الصلاحيات، يتم تخزينها مؤقتاً في Redis:
- مفتاح التخزين المؤقت:
perms:{tenantId}:{userId}:{eventId} - مدة التخزين المؤقت (TTL): 60 ثانية
- عند تغيير الدور يتم إبطال التخزين المؤقت تلقائياً
عملياً هذا يعني أنه بعد تغيير الدور تُطبَّق الصلاحيات الجديدة خلال دقيقة واحدة كحد أقصى. لا يحتاج المستخدم لتسجيل الخروج من النظام وإعادة الدخول.
التحقق من الصلاحيات
يمكن للمنظم التحقق من صلاحيات كل عضو في الفريق:
- انتقل إلى الإعدادات -> الفريق.
- اضغط على اسم المشارك.
- في قسم الصلاحيات الفعلية تُعرض القائمة الكاملة للصلاحيات مع مراعاة جميع الأدوار المعيّنة.
الصلاحيات المكتسبة من أدوار مختلفة تُوسم بالعلامات المناسبة.