الفريق والأدوار ومساحات العمل
من يستطيع تسجيل الدخول إلى لوحة المنظّم، والأدوار الأربعة التجريبية، وكل صلاحية تفحصها واجهة API، ومساحات العمل التي يتنقل العضو بينها، وكيف تعطي كل عضو في الفريق ما يحتاجه تمامًا.
لحزمة الحزمة الكاملة
كيف يعمل الوصول
- الموظفون يسجّلون الدخول إلى اللوحة. وللحضور حساباتهم الخاصة على الموقع، ولا يسجّلون الدخول إلى اللوحة أبدًا.
- للعضو دور، والدور مجموعة صلاحيات اسمها
<area>.<action>، مثلevents.publish. والدور نفسه في كل مساحة عمل ينتمي إليها العضو. - تفحص واجهة API صلاحية في كل مسار من مسارات اللوحة، أيًّا كان ما تعرضه الشاشة. وتخفي اللوحة عناصر الشريط الجانبي والتبويبات والأزرار التي لا يشملها الدور، والصفحة المفتوحة بعنوانها تقول «هذه الصفحة ليست ضمن دورك».
- أي تغيير في دور عضو، أو في صلاحيات دور، يصل إلى ذلك العضو وهو مسجَّل الدخول.
- يصل كل عضو إلى أول صفحة يفتحها دوره: النظرة العامة لمعظمهم، وصفحة تسجيل الدخول لدور تسجيل الدخول.
الأدوار التجريبية
| الدور | الصلاحيات | الشريط الجانبي |
|---|---|---|
| المالك | كلها التسع والعشرون | النظرة العامة والفعاليات والطلبات وتسجيل الدخول والأماكن والتقارير والفريق والمساعد الذكي واستوديو الأماكن والإعدادات |
| المدير (Manager) | overview.view وevents.view وevents.edit وevents.publish وvenues.view وvenues.edit وorders.view وcheckin.scan وreports.view وreports.export وleads.view وleads.edit وstudio.use وai_chat.use وai_chat.view_models: الفعاليات والأماكن وتسجيل الدخول والتقارير والاستفسارات والاستوديو والمساعد، مع الطلبات للقراءة فقط؛ بلا استردادات ولا فريق ولا أدوار ولا إعدادات | كل شيء عدا الفريق والإعدادات |
| المالية | overview.view, orders.view, refunds.create, tickets.manage, reports.view, reports.export | النظرة العامة والطلبات والتقارير |
| تسجيل الدخول | checkin.scan، للجلسات المسندة إليه فقط | تسجيل الدخول |
تنشئ البيانات التجريبية حسابًا لكل دور، وفريقًا من عشرة أعضاء آخرين، وحساب الحاضر على الموقع. وتضبط الأدوار الأربعة على هذه القوائم تمامًا في كل مرة تعمل فيها، لذلك يلغي yarn seed التالي أي تغيير أجريته على أحدها في صفحة الأدوار؛ أما الأدوار التي أنشأتها بنفسك فتُترك، وكلمة المرور الموجودة لا تُعاد ضبطها أبدًا. غيّر كل كلمة مرور، أو احذف الحسابات التجريبية، قبل أن تصبح اللوحة متاحة من الإنترنت. ويسرد دليل التثبيت بيانات الدخول.
كل الصلاحيات
| المجال | الصلاحيات |
|---|---|
| نظرة عامة | overview.view |
| الفعاليات | events.view, events.edit, events.publish |
| الأماكن ومخططات المقاعد | venues.view, venues.edit |
| الطلبات والاستردادات والتذاكر | orders.view, refunds.create, tickets.manage |
| تسجيل الدخول | checkin.scan |
| التقارير | reports.view, reports.export |
| الاستفسارات | leads.view, leads.edit |
| استوديو الأماكن | studio.use |
| الفريق | admins.view, admins.create, admins.edit, admins.delete, admins.assign_roles |
| الأدوار | roles.view, roles.create, roles.edit, roles.delete, roles.assign_permissions |
| إعدادات مساحة العمل | settings.view, settings.edit |
| المساعد الذكي | ai_chat.use, ai_chat.view_models |
- تغطي
events.publishنشر الفعالية وإلغاء نشرها وإلغاءها وأرشفتها؛ وتغطيevents.editإنشاءها وتعديلها ونسخها. - تعيد
tickets.manageإصدار رمز QR لتذكرة أو تلغيها؛ وتستردrefunds.createالتذاكر عبر مزوّد الدفع. - وتسند
admins.editالأعضاء إلى جلسات تسجيل الدخول أيضًا.
القائمة معرَّفة مرة واحدة في back-end/src/database/seeders/permission.seeder.ts؛ وتضيف البيانات الأولية الأسماء الجديدة وتزيل ما لم تعد واجهة API تفحصه.
مساحات العمل
مساحة العمل هي منظّم واحد: فعالياته وأماكنه وطلباته وبابه وتقاريره وفريقه وإعداداته. تنشئ البيانات التجريبية أربعًا (Northline Events وKiln & Co. وMill Street Talks وMeadow Days)، ويسرد الموقع الفعاليات المنشورة فيها كلها.
- تسرد قائمة مساحة العمل في بداية الشريط العلوي للوحة مساحات العمل التي ينتمي إليها العضو، وأولها مساحته. المالك التجريبي ينتمي إلى الأربع كلها؛ والحسابات التجريبية الأخرى إلى اثنتين أو ثلاث.
- اختيار واحدة يعيد تحميل كل صفحة لتلك المساحة. وصفحة السجل (طلب أو فعالية أو مكان) تعود إلى قائمتها، لأن السجل ينتمي إلى المساحة الأخرى.
- يحمل كل طلب الاختيار في الترويسة
X-Workspace-Id، وتتجاهل واجهة API مساحة عمل لا ينتمي إليها العضو وترجع إلى مساحته. - الدور نفسه في كل مساحة عمل: يسري الدور وصلاحياته في كل مساحة ينتمي إليها أعضاؤه. أما الجرس والاستفسارات والأدوار فليست لكل مساحة على حدة: تبقى كما هي أيًّا كانت المساحة المختارة.
- العضو المدعو من اللوحة ينتمي إلى مساحة العمل التي دُعي منها. وإضافة مساحة عمل، أو عضو موجود إلى أخرى، ليست شاشة في اللوحة.
- التثبيت الذي بدأ من دون البيانات التجريبية فيه مساحة عمل واحدة، أُنشئت عند أول تشغيل لواجهة API مع مالكها من
OWNER_EMAILوOWNER_PASSWORD، كما يشرح انشر تيكيتوري.
الفريق
- يعرض
/en/dashboard/teamأعضاء مساحة العمل بحسب الدور في الأعلى، ثم جدول الأعضاء، بعشرة في الصفحة، الأحدث تحديثًا أولًا (admins.view). - خانة بحث واحدة تجد الأعضاء بالاسم أو البريد: النص الذي فيه
@يبحث في البريد، وأي نص آخر في الاسم الأول واسم العائلة واسم المستخدم والاسم الكامل. وفي واجهة API يأخذGET /api/adminsالقيمemailوnameوphone، وكل فلتر يُعطى يضيّق القائمة: فهي تجتمع بـ AND. - دعوة عضو تنشئ الحساب فورًا باسم أول واسم عائلة وبريد ودور وكلمة مرور من ستة أحرف على الأقل، تُكتب مرتين (
admins.create). لا يُرسل أي بريد: شارك بيانات الدخول معه بنفسك. - يعدّل صف كل عضو بياناته (
admins.edit) أو يغيّر دوره (admins.assign_roles) أو يزيله (admins.delete). إزالة تخرج العضو من مساحة العمل التي تعمل فيها، مع جلسات تسجيل الدخول الخاصة به هناك؛ ويبقى يسجّل الدخول إلى مساحاته الأخرى، ولا يُحذف الحساب نفسه إلا إذا كانت هذه آخر مساحة له. وتبقى الطلبات والاستردادات وعمليات الدخول التي تولاها كما هي. - لا يستطيع أحد إزالة نفسه («لا يمكنك إزالة نفسك من الفريق.»)، وتحتفظ مساحة العمل دائمًا بمالك واحد: وإزالة آخر مالك مرفوضة برسالة «تحتاج مساحة العمل هذه إلى مالك واحد على الأقل. امنح دور المالك لشخص آخر أولًا.»
- تسرد صفحة العضو ما يستطيع دوره فعله، ولعضو تسجيل الدخول الجلسات التي يستطيع مسحها، تُحدَّد وتُحفظ هناك (
admins.edit). - كل عضو، أيًّا كان دوره، يعدّل اسمه وبريده وهاتفه من الإعدادات ثم الملف الشخصي، ويغيّر كلمة مروره من الإعدادات ثم الأمان، بكلمة مروره الحالية. ولا يحتاج أي منهما إلى صلاحية.
موظفو تسجيل الدخول وجلساتهم
العضو الذي يملك events.edit أو events.publish يستطيع مسح التذاكر لكل جلسة في مساحة العمل. وأي شخص آخر يملك checkin.scan يرى ويمسح الجلسات المسندة إليه فقط؛ وتُرفض تذكرة جلسة أخرى بـ session_not_assigned. تُجرى الإسنادات في صفحة العضو في اللوحة، أو بـ PUT /api/admin/session-staff/:code.
الأدوار
يعرض /en/dashboard/roles، الذي يُفتح من صفحة الفريق، ما يستطيع كل دور فعله على شكل شبكة قدرات، بنقطة للمسموح أو لبعض الإجراءات أو لغير المسموح. وينشئ الأدوار ويعيد تسميتها ويحذفها (roles.create وroles.edit وroles.delete)، ويمنح صلاحياتها (roles.assign_permissions). لإعطاء عضو في الفريق أقل من دور تجريبي، أنشئ دورًا بالصلاحيات التي يحتاجها فقط وأسنده بدلًا منه.
ما يصل إليه المساعد
تفتح ai_chat.use المساعد الذكي ولا تمنح شيئًا آخر. يقرأ المساعد ويغيّر فقط ما تسمح به صلاحيات العضو الأخرى، وهي نفسها التي تفحصها صفحات اللوحة: من دون orders.view لا يستطيع قراءة طلب، ومن دون leads.edit لا يستطيع تغيير استفسار. ويتحقق مرة أخرى قبل كل إجراء، فتسري صلاحية أُزيلت أثناء محادثة على التالية.
كيف يصل التغيير إلى عضو مسجَّل الدخول
مُضمَّن مع مشترياتك. سجّل الدخول لقراءته، أو افتحه في ملف التنزيل.
الاتصال المباشر الذي يدفع تغيير الدور إلى عضو مسجَّل الدخول.