الانتقال إلى المحتوى الرئيسي
تستخدم المنصة نموذج التحكم في الوصول المستند إلى الأدوار (RBAC). لكل عضو دور على مستوى مساحة العمل، ويمكن تقييد الأدوار الخارجية (أدوار الفرق الميدانية) لمشاريع محددة عبر تجاوزات على مستوى المشروع.

الأدوار المضمّنة

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

أدوار مساحة العمل

Owner

تحكم حصري بمساحة العمل نفسها. يمكن للمالك القيام بكل ما يمكن للمشرف القيام به، بالإضافة إلى نقل ملكية مساحة العمل وحذفها نهائياً وتصدير بياناتها. يوجد مالك واحد بالضبط لكل مساحة عمل.

Admin

وصول كامل إلى الإعدادات والفوترة وجميع المشاريع وإدارة الأعضاء. لا يمكن للمشرفين نقل الملكية أو حذف مساحة العمل أو تصدير بياناتها.

Member

يمكنه إنشاء المشاريع وإدارة المحتوى ودعوة المتعاونين ضمن مشاريعه. لا يمكنه الوصول إلى الفوترة أو إعدادات مساحة العمل.

Viewer

وصول للقراءة فقط إلى المشاريع التي يُضاف إليها صراحةً. لا يمكنه إنشاء المحتوى أو تعديله أو حذفه.

الأدوار الخارجية

الأدوار الخارجية مخصصة للمقاولين وغيرهم من المتعاونين الميدانيين. لا يرون مساحة العمل الكاملة أبداً — يرون فقط المشاريع التي يتم تعيينهم لها صراحةً.

Consultant

وصول للقراءة والكتابة إلى المتطلبات والاستدامة ودليل المشروع. يمكنه التصرف في خطوات الموافقة المعيّنة له. لا يمكنه رؤية تكوين توجيه الموافقات (Approval Routing).

Contractor

وصول للقراءة إلى المتطلبات والاستدامة والدليل. يمكنه التصرف في خطوات الموافقة. لا وصول إلى تحليلات أداء المقاولين أو تقرير التقدم.

Subcontractor

وصول ميداني محدود. في Issues وSite Diary وPunch List، يمكن للمقاولين من الباطن تعديل أو حذف العناصر التي أنشأوها بأنفسهم فقط (نطاق العناصر الخاصة). لا يمكنهم تنفيذ إجراءات QA أو إجراءات أعلام الإنذار المبكر أو تعديل عتبات الإنذار.

Supplier

وصول للقراءة إلى الدليل فقط. مصمم لموردي المواد الذين يحتاجون للبحث عن جهات الاتصال دون رؤية بيانات المشروع.
ينطبق نطاق العناصر الخاصة بالمقاول الفرعي أيضاً على نقاط نهاية التحديث الجماعي وانتقالات الحالة. لا يمكن للمقاول الفرعي، على سبيل المثال، إغلاق قائمة من Issues جماعياً تحتوي على عناصر أنشأها مستخدم آخر — يتم رفض الدفعة بالكامل.

سلاسل الأذونات

يُعرَّف كل دور بمجموعة من سلاسل الأذونات الدقيقة. كانت إعدادات مساحة العمل تتشارك سابقاً سلسلتين عامتين (settings:read وsettings:write)؛ تم استبدالهما بسلاسل مخصصة بحيث يمكن تحديد نطاق الأدوار بدقة:
المنطقةسلاسل الأذونات
قوالب المشاريعproject-templates:read, project-templates:write
الحقول المخصصةcustom-fields:read, custom-fields:write
قواعد سير العملworkflow-rules:read, workflow-rules:write
الموافقاتapprovals:manage (تكوين التوجيه)، approvals:act (الموافقة/الرفض)
سجل التدقيقaudit:read
التكاملات وWebhooksintegrations:manage
قوالب البريد الإلكترونيemail-templates:read, email-templates:write
تصدير البياناتdata:export (للمالك فقط)
يمكن بناء الأدوار المخصصة من أي تركيبة من هذه السلاسل.

تجاوزات الدور لكل مشروع

يمكن تجاوز دور العضو على مستوى مساحة العمل لمشروع واحد. الاستخدام الأكثر شيوعاً هو منح دور خارجي نطاقاً مختلفاً على مشروع معين — على سبيل المثال، جعل Contractor يعمل كـ Consultant على مهمة واحدة. يجب أن يكون للأدوار الخارجية تعيين لمشروع واحد على الأقل لرؤية أي بيانات مشروع. الأعضاء بدون تجاوز يرجعون إلى دورهم على مستوى مساحة العمل. لتعيين تجاوز أو مسحه:
  1. افتح المشروع وانتقل إلى تبويب Members.
  2. ابحث عن العضو. تعرض الشارة دوره الفعلي؛ تشير علامة النجمة (*) إلى وجود تجاوز.
  3. افتح القائمة المنسدلة للدور واختر دوراً جديداً، أو اختر Workspace default لمسح التجاوز.
PATCH /api/v1/projects/{projectId}/members/{userId}/role
Content-Type: application/json

{ "role": "consultant" }
تمرير "role": null يزيل التجاوز ويعيد العضو إلى دوره على مستوى مساحة العمل لذلك المشروع.
يمكن للمالكين والمشرفين فقط إدارة الوصول الخاص بالمشروع وتجاوزات الأدوار.

سجل الأدوار

يتم تسجيل كل تغيير لتجاوز الدور في سجل تدقيق. يمكن للمشرفين مراجعة السجل الزمني الكامل لمن غيّر أي دور ومتى ومن ماذا إلى ماذا.
  • السجل لكل مشروع — في تبويب Members الخاص بالمشروع، افتح صف العضو لرؤية تغييرات تجاوز الدور المقيدة بذلك المشروع.
  • السجل عبر المشاريع — في صفحة Team على مستوى مساحة العمل، افتح عضواً لرؤية كل تغيير لتجاوز الدور لذلك العضو عبر كل مشروع، من مكان واحد.
يعرض كل إدخال الطابع الزمني، والفاعل (المشرف الذي أجرى التغيير)، والمشروع، والدور القديم → الجديد.

نقل ملكية مساحة العمل

يمكن للمالك فقط نقل الملكية. النقل فوري: يكتسب المالك الجديد جميع القدرات الحصرية للمالك، ويُخفَّض المالك السابق إلى Admin.
  1. انتقل إلى Workspace Settings → General → Danger Zone.
  2. انقر Transfer ownership.
  3. استخدم منتقي البحث لاختيار المالك الجديد. الأعضاء الحاليون في مساحة العمل فقط هم المؤهلون.
  4. اكتب اسم مساحة العمل للتأكيد، ثم أرسل.
يتلقى الطرفان إشعاراً بالبريد الإلكتروني بمجرد اكتمال النقل.
نقل الملكية وحذف مساحة العمل (أيضاً في Danger Zone) دائمان ولا يمكن التراجع عنهما من الواجهة.

ما يراه الأعضاء عند رفض الوصول

عندما يفتح عضو صفحة لا يملك إذن الوصول إليها، تعرض المنصة السبب بدلاً من إعادة التوجيه بصمت:
  • المسارات المحمية بإذن — يظهر تنبيه (toast) برسالة “Access denied — You don’t have permission to view ، وتتم إعادة توجيه المستخدم إلى عنوان URL المُكوَّن بواسطة redirectTo (عادةً الصفحة الرئيسية لمساحة العمل).
  • Portfolio Schedule — يرى الأعضاء الخارجيون المقيدون بمشاريع محددة رسالة خطأ تطلب منهم استخدام عرض Schedule لكل مشروع بدلاً من ذلك. لا تعيد الصفحة محاولة الطلب.
  • Approval Routing — مخفي عن Consultants والأدوار الأخرى التي لا تملك approvals:manage. التنقل المباشر يؤدي إلى تنبيه رفض الوصول.
  • المسارات المحمية بالترقية — إذا كانت الميزة تتطلب اشتراكاً أعلى، يعرض التنبيه اسم الميزة والخطة المطلوبة قبل إعادة التوجيه.

الأدوار المخصصة

تتيح لك الأدوار المخصصة تحديد مجموعات أذونات دقيقة للفرق ذات احتياجات الوصول غير القياسية. يُبنى كل دور مخصص باختيار سلاسل الأذونات المذكورة أعلاه. لإنشاء دور مخصص:
  1. انتقل إلى Settings → Roles → New role.
  2. أعطِ الدور اسماً ووصفاً اختيارياً.
  3. قم بتبديل الأذونات الفردية للتشغيل أو الإيقاف.
  4. احفظ وعيّن للأعضاء.
تتوفر الأدوار المخصصة في خطط Business وEnterprise. يمكن لمسؤولي مساحة العمل إنشاء وإدارة ما يصل إلى 20 دوراً مخصصاً.