Skip to Content
Organizationsالأدوار ونطاق الأذونات

الأدوار ونطاق الأذونات

يخزن OpenFactory أدوارا مستقلة على مستويات المؤسسة والوحدة والفريق. يصف اسم الدور نطاقا؛ وليس صلاحية عامة تنطبق تلقائيا على كل API أو ميزة منتج.

نموذج النطاق

organization membership: owner | admin | member └── unit membership: unit_admin | base_creator | base_approver | member └── team membership: team_lead | variant_creator | variant_deployer | variant_user

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

أدوار المؤسسة

يفرض API إدارة المؤسسة الحالي هذه الصلاحيات:

العمليةOwnerAdminMember
عرض المؤسسة والأعضاء والمجموعات والوحدات والفرقنعمنعمنعم
تعديل اسم المؤسسة أو وصفهانعمنعملا
إنشاء المجموعات أو تعديلها أو حذفها وإدارة أعضائهانعمنعملا
دعوة الأعضاء العاديين أو إزالتهمنعمنعملا
تغيير أدوار العضو/المسؤول العادينعمنعملا
دعوة مالك أو ترقيتهنعملالا
تغيير مالك موجود أو إزالتهنعملالا
إنشاء الوحدات أو حذفهانعمنعملا
حذف المؤسسةنعملالا
مغادرة المؤسسةنعم، ما لم يكن المالك الوحيدنعمنعم

يمكن أن يكون للمؤسسة أكثر من مالك. يمنع API المالك الوحيد من المغادرة حتى يوجد مالك آخر أو تُحذف المؤسسة. لا يوجد إجراء منفصل «نقل الملكية» في هذا API؛ يغيّر مالك دور عضو آخر إلى owner، ثم قد يغيّر المالك السابق أو يزيله حسب المقصود.

أدوار الوحدة

يمكن لمالكي المؤسسة ومسؤوليها إدارة كل وحدة. داخل الوحدة، يمنح API إدارة المؤسسة الحالي لـ unit_admin العمليات الإدارية التالية:

  • تعديل الوحدة؛
  • إضافة أدوار أعضاء الوحدة وإزالتها وتغييرها؛
  • إنشاء الفرق في تلك الوحدة وتعديلها وحذفها؛
  • إضافة أعضاء الفريق في تلك الوحدة وإدارتهم.

مالك المؤسسة أو مسؤولها وحده يمكنه حذف الوحدة نفسها.

base_creator وbase_approver وmember على مستوى الوحدة تسميات أدوار مخزنة لسياسة سير عمل الصورة الأساسية. مسارات CRUD الخاصة بالمؤسسة لا تثبت وحدها أن كل إجراء إنشاء أو موافقة أو نشر في موضع آخر يفرض تلك التسميات. تحقق من سلوك التفويض لسير عمل البناء أو الموافقة المحدد قبل الاعتماد عليه كضبط.

أدوار الفريق

يمكن لمالكي/مسؤولي المؤسسة وunit_admin للوحدة الأم إدارة عضوية الفريق. يمكن لـ team_lead:

  • تعديل اسم الفريق أو وصفه؛
  • إضافة أعضاء الفريق وإزالتهم؛
  • تغيير أدوار أعضاء الفريق.

لا يمكن لـ team_lead حذف الفريق عبر API المؤسسة الحالي؛ تلك العملية محفوظة لمالك/مسؤول المؤسسة أو unit_admin للأب.

تعبّر variant_creator وvariant_deployer وvariant_user عن مسؤوليات سير عمل المتغير المقصودة. لا تُقرأ كدليل على أن كل نقطة متغير تفرض مصفوفة إنشاء/تعديل/نشر كاملة. اختبر السير الدقيق والمسارات المرفوضة في الإصدار المنشور.

المجموعات مختلفة

المجموعات مجموعات مشاركة على مستوى المؤسسة، وليست تسلسل أدوار آخر. ينشئ المالكون والمسؤولون المجموعات ويديرون عضويتها؛ يمكن لجميع أعضاء المؤسسة سرد المجموعات وأعضائها. عضوية مجموعة لا تحوّل المستخدم إلى مسؤول مؤسسة أو مسؤول وحدة أو قائد فريق.

تغيير دور بأمان

  1. أكّد المؤسسة أو الوحدة أو الفريق المستهدف.
  2. سجّل عضويات المستخدم الفعلية الحالية على النطاقات الثلاثة.
  3. طبّق تغييرا واحدا للدور.
  4. اختبر عملية مسموحة وعملية مرفوضة بجلسة ذلك المستخدم نفسه.
  5. تحقق أن حالة الواجهة المخبأة والجلسات القائمة تعكس التغيير.
  6. احتفظ بسجل تدقيق خارج تسمية الدور إذا تطلبت سياستك ذلك.

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

حالات حد شائعة

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