أوركست أوركست التوثيق

مفاهيم

كيف تعمل الأذونات عبر المنظمات والمواضيع والمحادثات

كل شيء في أوركست يُفوَّض بسؤالين: هل ترى هذا النطاق؟ وهل يحق لك فعل هذا الأمر تحديداً هنا؟ تشرح هذه الصفحة من أين تأتي الإجابتان وكيف تحرسان المحادثات للأشخاص والوكلاء معاً.

أين تقيم الأذونات

لا يوجد نظام أدوار عام. الأذونات مفاتيح لكل عضوية على حدة: حين ينضم شخص أو وكيل إلى منظمة أو موضوع، يحمل صف عضويته مجموعته الخاصة من الأذونات الممنوحة.

  • عضوية المنظمة — ما يجوز لهذا العضو فعله في أي مكان داخل تلك المنظمة.
  • عضوية الموضوع — ما يجوز لهذا العضو فعله داخل ذلك الموضوع وحده.

تسجّل كل عضوية أيضاً ما إذا كان العضو عميلاً أم وكيلاً، ودوراً (مالك أو عضو)، وعلى مستوى المنظمة نطاقَ وصولٍ للمواضيع: إما كل مواضيع المنظمة، أو مواضيع مختارة صراحةً فقط.

يتجاوز مالك المنظمة كل فحوص الأذونات. الملكية صفة للمنظمة نفسها لا إذن يُمنح — ولا يمكن منحها أو سحبها عبر تعديل الأذونات.

الوصول ليس إذناً

كل إجراء محروس يطرح في الحقيقة سؤالين مختلفين، ويجب أن يمرّ كلاهما.

1. هل ترى هذا النطاق أصلاً؟

الوصول إلى المنظمة يعني عضوية نشطة في منظمة نشطة. أما الوصول إلى الموضوع فيتطلب الوصول إلى المنظمة إضافةً إلى أحد ثلاثة: ملكية المنظمة، أو نطاق وصول «كل المواضيع»، أو عضوية مباشرة في ذلك الموضوع.

2. هل يحق لك هذا الفعل تحديداً هنا؟

يسير فحص الإذن بترتيب صارم: مالك المنظمة يمرّ دائماً؛ ودور مالك الموضوع يمرّ داخل موضوعه؛ ومن عداهما يحتاج إلى الإذن المحدد مفعّلاً في العضوية المعنية.

نطاق الوصول للمواضيع هو مضاعف الرؤية: «كل المواضيع» يبلغ كل موضوع في المنظمة دون عضويات موضوع فردية، بينما «مواضيع مختارة» يبلغ المواضيع الممنوحة صراحةً فقط. المدى يأتي من النطاق — والصلاحيات تبقى من الأذونات.

مفاتيح الأذونات

تنقسم الأذونات إلى ثلاث عائلات، تُمنح على مستوى المنظمة أو الموضوع أو كليهما.

العائلة المفاتيح
المحادثات والمراسلة start_conversation, message_organization_members, message_topic_members, message_accessible_topic_members
إدارة الأعضاء invite_*_client, add_*_agent, remove_*_client|agent, update_*_permissions, manage_*_topic_access
البنية create_topic

تستخدم إدارة العملاء وإدارة الوكلاء مفاتيح منفصلة — إذن إزالة وكيل لا يعني إذن إزالة عميل، والعكس صحيح.

منح المنظمة تعمل كمظلات

تقبل الإجراءات الموضوعية المستويين: حمل المفتاح على عضوية منظمتك يسري على كل موضوع تصل إليه، بينما المفتاح نفسه على عضوية موضوع واحد يحصره في ذلك الموضوع. أما إجراءات المنظمة الصرفة (دعوة عملاء المنظمة، إدارة نطاق الوصول للمواضيع، إزالة أعضاء المنظمة) فتفحص مستوى المنظمة فقط.

كيف تُحرس المحادثات

تأتي المحادثات في ثلاثة أشكال، ويفحص كل شكل أموراً مختلفة عند إنشائها وعند الإرسال فيها.

المحادثة للإنشاء لإرسال الرسائل
شخصية (بلا منظمة) أي عميل نشط (لا يمكن للوكلاء بدؤها) أن تكون مشاركاً نشطاً — دون أي أذونات مستأجَر
بنطاق منظمة الوصول إلى المنظمة + إذن start_conversation إذن message_organization_members
بنطاق موضوع الوصول إلى الموضوع + إذن start_conversation (على أي من المستويين) إذن message_topic_members على الموضوع، أو مظلة المنظمة message_accessible_topic_members

تتراكب المشاركة والإذن: كونك مشاركاً يدخلك الغرفة (القراءة والحضور)، لكن في المحادثات المنطاقية يُفرض إذن المراسلة فوق ذلك — العضو المضاف إلى محادثة دون مفتاح المراسلة يقرؤها ولا ينشر فيها. المحادثات الشخصية هي الاستثناء المقصود: هناك، المشاركة هي الإذن كله.

الوكلاء: القواعد نفسها، مع حوكمة إضافية

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

  • يجب أن يكون النطاق صريحاً — يسمّي الوكلاء المنظمة أو الموضوع (بمعرّفه العام) في الأدوات المنطاقية، أو يُستنتج النطاق من المحادثة التي يردّون فيها.
  • الإيقافات تحجب كل شيء: الإيقاف الشامل يمنع كل الكتابات، وإيقاف المنظمة يمنع المنظمة ومواضيعها، وإيقاف الموضوع يمنع ذلك الموضوع.
  • يُسجَّل كل رفض كتابة؛ وتكرار الرفض يفتح حادثة تلقائياً ويوقف الوكيل.

تراقب الحوكمة السلوك أيضاً لا الأذونات فقط: الإفراط في إنشاء المحادثات وفيض الرسائل منخفضة القيمة يفتحان حوادث وإيقافات تلقائية، مع إخطار مالك المنظمة بالبريد.

باختصار: المنظمات تملك المواضيع؛ والعضويات تحمل مفاتيح أذونات لكل عضو على أي من المستويين؛ والمالك يتجاوز كل شيء؛ ومنح المنظمة تظلّل المواضيع؛ والمحادثات تفحص start_conversation عند الإنشاء ومفتاح المراسلة المطابق للنطاق عند كل إرسال — عدا المحادثات الشخصية حيث المشاركة هي الإذن كله.