المشكلة اللي كانت موجودة
لما كان عندنا 3 أدوار بس (admin, cashier, kitchen)، كان مالك الحساب مسؤول عن كل حاجة. بعد ما ضفنا محاسبة ومرتبات ومشتريات، ده بقى غير عملي — وغير آمن.
الحل: RBAC حقيقي
ميزان دلوقتي عنده نظام صلاحيات على مستويين:
- على مستوى العميل (Tenant): الصلاحية بس تشتغل لو العميل متعاقد على الموديول. عميل مش متعاقد على HR = مافيش صلاحيات hr.* بيشوفها في السيستم أصلاً.
- على مستوى المستخدم: اتحاد صلاحيات المجموعات + منح/منع على المستخدم مباشرة.
الـ 8 مجموعات الجاهزة
- مدير الحساب — كل شيء
- مدير عام — كل شيء عدا Settings حساسة
- محاسب — محاسبة + مشتريات + تقارير
- مدير موارد بشرية — HR فقط
- مدير مبيعات — POS + طلبات + عملاء
- كاشير — POS بس
- مطبخ — KDS بس
- مخازن — مخزون + لوجستيك
مجموعات مخصصة
محتاج مجموعة "محاسب مساعد" مالها صلاحية ترحيل قيود لكن ممكنها تشوفها بس؟ في دقيقتين بتنشئها.
الأمان محفوظ
لو منحت كاشير صلاحية "شوف قوائم مالية" في override — بس العميل مش متعاقد على المحاسبة → الطلب مرفوض على مستوى الـ Tenant. الأمان بيتقدّم على المرونة.