انتقل إلى المقال
Aniq-UI

Ticketoryالفريق والأدوار ومساحات العمل

الفريق والأدوار ومساحات العمل

من يستطيع تسجيل الدخول إلى لوحة المنظّم، والأدوار الأربعة التجريبية، وكل صلاحية تفحصها واجهة 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 لا يستطيع تغيير استفسار. ويتحقق مرة أخرى قبل كل إجراء، فتسري صلاحية أُزيلت أثناء محادثة على التالية.

كيف يصل التغيير إلى عضو مسجَّل الدخول

مُضمَّن مع مشترياتك. سجّل الدخول لقراءته، أو افتحه في ملف التنزيل.

الاتصال المباشر الذي يدفع تغيير الدور إلى عضو مسجَّل الدخول.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.