الأدوار والصلاحيات
المالك والمسؤول والعضو، ومستويات الوصول الأربعة التي يملكها كل شخص لكل وحدة.
لكل شخص في مساحة العمل دور، ولكل وحدة مستوى وصول.
الأدوار
| الدور | الشخص المعتاد | يدير الأعضاء | أرقام الهاتف وويب هوك | الفوترة |
|---|---|---|---|---|
| المالك | مالك العيادة | نعم | نعم | يراها؛ ولا يغيرها إلا عبر الفوترة |
| المسؤول | مدير العيادة | يدعو الأعضاء ويضبط مستوياتهم، لا مستويات المالك | نعم | يراها |
| العضو | مكتب الاستقبال | لا | لا | لا |
وكلاء الذكاء الاصطناعي ليسوا أعضاء. يُضبطون في النصوص.
مستويات الوصول
| المستوى | ما يسمح به |
|---|---|
none | الوحدة مخفية. لا تُرجع صفوفها أي شيء، حتى عبر واجهة API. |
view | قراءة الصفحات والسجلات. دون تغييرات. |
edit | تغييرات العمل اليومي: مراجعة المكالمات، وإضافة الملاحظات، وتحرير المسودات، وإدارة الحجوزات. |
publish | إجراءات تغيّر ما يسمعه المتصلون أو تمحو البيانات، مثل نشر نص. |
تبني المستويات بعضها على بعض: يتضمن publish مستوى edit، والذي يتضمن view.
الافتراضيات حسب الدور
هذه المستويات التي يحصل عليها الشخص ما لم يغيرها مالك أو مسؤول لذلك الشخص في الإعدادات ← الفريق والوصول. يُولَّد الجدول من ROLE_DEFAULTS في @callwise/modules، وهو يطابق دالة قاعدة البيانات cw_role_default_level().
| الوحدة | المالك | المسؤول | العضو |
|---|---|---|---|
| موظف الاستقبال | publish | publish | edit |
| الحجوزات | publish | publish | edit |
| المتصلون | publish | publish | edit |
| التحليلات | publish | publish | view |
| الصادر | publish | publish | view |
المستوى الفعلي
ما يستطيع الشخص فعله فعلًا هو الأدنى من أمرين:
- مستواه: افتراضي الدور، أو التجاوز الخاص بالشخص.
- سقف الوحدة، الذي تضبطه الفوترة: الوحدة المقفلة أو المطفأة سقفها
none، وللقراءة فقط سقفهاview. انظر حالات الوحدات والفوترة.
يحصل المالكون دائمًا على السقف كاملًا. تجري القاعدة نفسها في التطبيق (لإخفاء الصفحات والأزرار) وفي Postgres بصفتها cw_can_access() (لتصفية الصفوف ورفض الكتابة)، فإخفاء زر ليس الحماية الوحيدة أبدًا.
قواعد تحمي الوصول نفسه
- لا يستطيع العضو رفع مستواه بنفسه.
- لا يستطيع المسؤول تغيير مستويات المالك.
- المالك وحده يستطيع تغيير الأدوار.