غالباً ما تأتي قوائم لوحات التحكم من الخادم: كل دور يرى مداخل مختلفة، وإضافة صفحة لا تتطلب إصدار الواجهة من جديد. والمطلوب ليس رسم ما يصل كما هو، بل إخضاع القائمة والمسارات والأزرار لمجموعة قواعد واحدة.
اتفاق القائمة
تصل القائمة على شكل مجموعات وعناصر. يحمل كل عنصر المسار والنص أو مفتاح النص والأيقونة والمجموعة والترتيب وعلامة الإخفاء ورموز الصلاحيات والعناصر الفرعية. تحدّد المجموعات ترتيب الشريط الجانبي، ويتوقف التداخل عند أربعة مستويات حتى لا تُفسد أي بيانات شاذة التنقل.
تصرّح العناصر الخارجية بعنوانها وطريقة فتحها: نافذة جديدة أو النافذة نفسها أو تضمين. ولا يعمل التضمين إلا مع المواقع التي تسمح به؛ فموقع يرسل X-Frame-Options: DENY سيظهر فارغاً.
التسامح مسؤولية الواجهة أيضاً: المسارات غير المعتادة والأيقونات المجهولة والعناصر الأعمق من الحد تُصحّح مع إبقاء قائمة تحذيرات مقروءة. وعند ربط واجهة حقيقية تُقرأ هذه القائمة بدل انتظار شكوى من مستخدم.
المسارات لا تعرف إلا الصفحات المسجّلة
تأخذ المسارات الديناميكية مكوّناتها من سجل محلي: يمكن للواجهة أن تشير إلى صفحة مسجّلة، لكنها لا تُدخل شيفرة جديدة. وغياب الجلسة أو الصلاحية ينتهي إلى صفحة الدخول أو 403، لا إلى شاشة فارغة.
ثلاث طبقات بقاعدة واحدة
- القائمة: تُرشَّح العناصر برمز الصلاحية، فلا تُرسم المداخل غير المتاحة.
- المسارات: إدخال العنوان مباشرة يمر بالحماية نفسها وينتهي بـ 403.
- الأزرار: يتحكم
<Can permission="customer:create">في عمليات مثل الإنشاء والتصدير، ويعرض حالة معطّلة بدل الفشل الصامت.
تقبل رموز الصلاحيات * للكل، وmodule:* لوحدة كاملة، والمطابقة الدقيقة، فيمكن تلخيص فروق الأدوار في قائمة واحدة. ويحتوي موقع التوثيق على الاتفاق كاملاً، كما يتيح العرض الحي مقارنة حسابين: في العنوان نفسه يرى المدير سجل العمليات ويحصل الحساب التجريبي على 403.