من يرى ماذا
ليس في Toutadmin مصفوفة صلاحيات تُؤشَّر خاناتها. فيه دوران، وأربع صلاحيات عرضية، وإشراف مستنبَط من الهيكل التنظيمي، وقاعدة واحدة بسيطة: المساحة ترفض الدخول قبل أن تُحمِّل أدنى بيان. هذه الصفحة تُحصي كل القواعد كما هي مكتوبة في الشفرة.
المبدأ#
الضوابط ليست مبعثرة في الشاشات. هي في مكان واحد —
src/middleware/ في جانب Node، وApp\Core\Kernel في جانب PHP —
يمرّ به كل طلب قبل التوجيه. فيمكن إذًا قراءة سياسة الوصول كلها دفعة واحدة، ولا يمكن أن
تُنسى صفحة جديدة.
وحين يُرفض الوصول، لا يقول المنتج لماذا: يعيدك إلى مساحتك برسالة محايدة. فرسالة خطأ ثرثارة تُعلِّم الفضولي أن الشاشة موجودة وأي صلاحية تلزم لها.
الدوران#
| الدور | ما هو |
|---|---|
admin |
الإدارة. وحدها تُنشئ حسابًا، وتمنح صلاحية، وتفتح وحدة، وتمسّ عناوين البريد وإعدادات خادم البريد، وتدير الإخفاء من الدليل، وتقرأ سجل التدقيق، وتستعيد نسخة احتياطية. |
employee |
عضو. مساحته الشخصية، والدليل، والتقويم، والجدول للقراءة، والطلبات، والخزنة المشتركة، وقاعدة المعرفة، والمخزون طلبًا. وكل ما عدا ذلك متوقّف على صلاحية أو على إشراف. |
لا تسجيل عامّ، ولا رابط دعوة مفتوح، ولا إنشاء تلقائي من مزوّد الهوية. الحساب يولد من مسؤول داخل جلسته، والعملية تُقيَّد في السجل. هذا قرار تصميم لا إعداد: لا شيء يفعّله.
ما لا تراه الإدارة#
ثلاثة استثناءات مقصودة، لا تكفي فيها صفة المسؤول:
- بلاغات الإبلاغ الداخلي. قد يستهدف البلاغ مسؤولًا. ولا يقرأ البلاغات إلا المسؤولون المعيَّنون؛ والإدارة تعيّنهم ولا تقرأ هناك شيئًا.
- خانة خزنة فُتحت برمز وصول. جلسة فُتحت برمز ليست جلسة إدارة أبدًا، أيًّا كان الحساب وراءها.
-
المساحات المخصّصة للموظفين.
/mon-espaceو/agendaتعيدان الإدارة إلى لوحتها: حساب الإدارة لا رصيد إجازات له، ولا مسؤول، ولا كشف راتب.
الصلاحيات العرضية الأربع#
تُمنح من الإدارة ← الصلاحيات، واحدة واحدة، لعضو بعينه. وكل كتلة تعرض نطاقها قبل أن تنقر: فالصلاحية تُمنح مع معرفة ما تفتحه.
| الصلاحية | ماذا تفتح | النطاق |
|---|---|---|
is_hrالموارد البشرية |
/rh و/parcours و/sante-securite و
/accueil وإدارة الخزنة |
طلبات جميع الموظفين غير المستقلين، وأرصدة إجازاتهم، وكشوف رواتبهم. |
is_financeالإدارة المالية |
/gestion و/partenaires و/flotte و
/pieces و/import، والوجه المحجوز من المخزون |
الأطراف، والعقود، والفواتير، والموازنات، ومطالبات النفقات، والعهد، والقاعات. |
is_itتقنية المعلومات |
/informatique و/developpement |
مخزون البرمجيات، وصلاحيات التطبيقات، وأعطال نظام المعلومات. |
is_referentالإبلاغ الداخلي |
/alertes/signalements/… |
تلقّي البلاغات، وهو إلزامي ابتداءً من خمسين موظفًا. |
الصلاحية تراكمية: تفتح مساحة ولا تغلق أيًّا منها. وللعضو أن يجمع عدة صلاحيات. أما الإدارة فتملكها كلها ضمنًا — عدا الاستثناءات الثلاثة أعلاه.
الإشراف الذي لا يُؤشَّر#
لا توجد خانة «مشرف». يُشرف المرء لأنه عُيِّن مسؤولًا عن قسم أو
فريق في الهيكل التنظيمي. ومساحة /mon-equipe تُفتح لمن يشرف
على نطاق واحد على الأقل، وقائمة الأشخاص التي تعرضها هي بالضبط قائمة تلك النطاقات — ولا شخص
زائد.
ويحصل المشرف، على نطاقه وحده، على:
- اعتماد غيابات فريقه وطلباته؛
- اللقاءات الفردية؛
- الكتابة في الجدول؛
- مساحة
/qualite؛ - التحرير في قاعدة المعرفة.
القيادة#
ينظر /pilotage إلى الشركة كلها: يُفتح للإدارة، وللإدارة المالية، وللموارد
البشرية. وهو الشاشة الوحيدة التي يكون الوصول إليها اتحاد صلاحيتين لا إحداهما.
قراءة مفتوحة وكتابة محجوزة#
أربع مساحات تميّز فعل HTTP لا المساحة: الرؤية مفتوحة، والفعل لا. وهذا نقيض الشاشة المخفية — فجدول لا يُقرأ لا ينفع أحدًا.
| المساحة | القراءة | الكتابة |
|---|---|---|
/planning | الجميع | الإشراف، والموارد البشرية، والإدارة |
/base-de-connaissances | الجميع، بحدود نطاق المقالة | الإشراف، والموارد البشرية، والإدارة |
/evenements | الجميع | الموارد البشرية والإدارة — عدا التسجيل والانسحاب، وهما مفتوحان لكل امرئ في مقعده |
/stock | كل امرئ يطلب ما يحتاجه | الأصناف والحركات وأوامر الشراء والفواتير: الإدارة المالية |
محجوز للإدارة، بلا تفويض ممكن#
| المساحة | لماذا |
|---|---|
/admin | الحسابات، والهيكل، والصلاحيات، والوحدات، والمظهر. |
/securite | سجل التدقيق، والجلسات، وسياسة كلمات المرور. |
/sauvegardes | الاستعادة تعيد كتابة قاعدة البيانات كلها. |
/rgpd | تصدير البيانات الشخصية ومحوها. |
/integrations | رموز واجهة البرمجة وخطافات الويب: فتح باب على بيانات الشركة. |
/direction | عرض مجمَّع للإدارة العليا. |
/juridique | الشركاء، والمناصب في الأجهزة، والجمعيات. |
/demandes/types | تحديد نوع طلب هو كتابة مسار موافقة. |
المساحات ذات القفلين#
سبع مساحات تتبع وحدات اختيارية. وتشترط شرطين: الوحدة مفعَّلة و الصلاحية. وحين تكون الوحدة مطفأة، لا تردّ الصفحة «الوصول مرفوض» — بل تردّ 404. فالوحدة المطفأة غير موجودة؛ ولا شيء يُستنتج منها.
| المساحة | الوحدة | الصلاحية المطلوبة زيادةً |
|---|---|---|
/comptabilite | المحاسبة | الإدارة المالية |
/paie | محرك الرواتب | الموارد البشرية |
/facturation-electronique | الفوترة الإلكترونية | الإدارة المالية |
/stock | المخزون والمشتريات | القراءة مفتوحة، والكتابة للإدارة المالية |
/tresorerie | الخزينة | الإدارة المالية |
/immobilisations | الأصول الثابتة | الإدارة المالية |
/crm | إدارة العلاقات التجارية | الإدارة المالية |
مجلس العمال#
مساحة /cse مفتوحة لجميع الموظفين؛ و/cse/gestion للمنتخَبين وحدهم.
وكون المرء مسؤولًا لا يغيّر شيئًا: إمّا أن يكون منتخَبًا أو لا.
ملف التوقيع#
كل امرئ يرى ويوقّع المستندات التي تخصّه. أما إنشاء ملف توقيع أو سحبه أو الاطّلاع على ملفات الآخرين فيفترض صلاحية الموارد البشرية أو الإدارة.
ما لا يستطيع العضو تغييره بنفسه#
ثلاثة حقول لا تعدّلها إلا الإدارة، في كل الإصدارات، ولا تظهر أصلًا في الملف الشخصي:
- عنوان البريد — فهو معرّف الدخول.
- إعدادات IMAP وSMTP للحساب.
- الإخفاء من الدليل — فدليل شركة ينسحب منه المرء بنفسه لم يعد دليلًا.
ويبقى للعضو أمر كلمة مروره، وصورته، ونبذته، وهاتفه، ولغة العرض، والتحقق بخطوتين.
التحقق من قاعدة بدل افتراضها#
السياسة تسع ملفًا واحدًا. ولقراءة القاعدة التي تنطبق على مسار:
# إصدار PHP
grep -n "/pilotage" app/Core/Kernel.php
# إصدار Node
grep -rn "/pilotage" src/middleware/
يحمل الإصداران القواعد نفسها، مكتوبةً مرتين ومتحقَّقًا منها بالسيناريوهات نفسها: ففي مجموعة الاختبارات، لكل مساحة محجوزة، حالةٌ تحاول الدخول بحساب لا حق له وتشترط الرفض.
توثيق Toutadmin — بُني في 2026-09-13. موقع مستقل، منفصل عن البرنامج.