feat(rbac): full permission catalog in the custom-role matrix UI (fa/en/ar)
CI/CD / CI · API (dotnet build + test) (push) Successful in 42s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 30s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m7s
CI/CD / CI · Admin Web (tsc) (push) Successful in 37s
CI/CD / CI · Website (tsc) (push) Successful in 45s
CI/CD / CI · Koja (tsc) (push) Successful in 49s
CI/CD / Deploy · all services (push) Successful in 3m24s

Mirrors the expanded backend catalog on the client: the Permission type and the
custom-role permission matrix now expose all ~80 capabilities grouped into 16
sections (admin, branches, menu, inventory, taxes, staff, tables, orders,
register, queue/kitchen, delivery, customers, coupons, marketing, reports,
expenses), each with fa/en/ar labels. Nav visibility now maps each page to its
View permission; taxes & branches become permission-driven (managers can view),
leaving billing as the sole hard owner-only nav gate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-21 05:49:11 +03:30
parent 7a5ea75b50
commit 53d90fa357
6 changed files with 471 additions and 113 deletions
+97 -25
View File
@@ -1256,34 +1256,106 @@
"saveError": "فشل حفظ الدور",
"deleteConfirm": "حذف الدور «{name}»؟ سيعود الموظفون إلى صلاحيات دورهم الأساسي.",
"groupAdmin": "إدارة المقهى",
"groupMenu": "القائمة والمخزون",
"groupStaff": "الموظفون",
"groupCustomer": "العملاء والطاولات",
"groupBranches": "الفروع",
"groupMenu": "القائمة",
"groupInventory": "المخزون",
"groupTaxes": "الضرائب",
"groupStaff": "الموظفون والموارد البشرية",
"groupTables": "الطاولات والحجوزات",
"groupOrders": "الطلبات ونقطة البيع",
"groupRegister": "الصندوق والنقد",
"groupQueueKitchen": "الانتظار والمطبخ",
"groupDelivery": "التوصيل",
"groupCustomers": "العملاء",
"groupCoupons": "الكوبونات",
"groupMarketing": "التسويق والتقييمات",
"groupReports": "التقارير والمالية",
"groupOps": "عمليات الصندوق",
"groupKitchen": "المطبخ والتوصيل",
"groupExpenses": "المصروفات",
"perm": {
"ManageCafeSettings": "إعدادات المقهى",
"ManageBilling": "الاشتراك والفواتير",
"ManageBranches": "إدارة الفروع",
"ManageMenu": "إدارة القائمة",
"ManageInventory": "المخزون",
"ManageTaxes": "الضرائب",
"ManagePrintSettings": "إعدادات الطباعة",
"ManageStaff": "إدارة الموظفين",
"ManageSalaries": "الرواتب",
"ReviewLeave": "طلبات الإجازة",
"ManageReservations": "الحجوزات",
"ManageTables": "الطاولات",
"ManageCoupons": "الكوبونات",
"ViewReports": "التقارير",
"ManageExpenses": "المصروفات",
"ProcessOrders": "معالجة الطلبات",
"HandlePayments": "المدفوعات",
"OperateRegister": "الصندوق",
"ManageQueue": "قائمة الانتظار",
"ViewCafeSettings": "عرض إعدادات المقهى",
"ManageCafeSettings": "تعديل إعدادات المقهى",
"ManageDiscoverProfile": "الملف العام و«كوجا»",
"ViewBilling": "عرض الفواتير",
"ManageBilling": "إدارة الاشتراك والفواتير",
"ManageRoles": "إدارة الأدوار",
"ViewPrintSettings": "عرض إعدادات الطباعة",
"ManagePrintSettings": "تعديل إعدادات الطباعة",
"ViewBranches": "عرض الفروع",
"CreateBranch": "إنشاء فرع",
"EditBranch": "تعديل فرع",
"DeleteBranch": "حذف فرع",
"ViewMenu": "عرض القائمة",
"CreateMenuItem": "إضافة أصناف",
"EditMenuItem": "تعديل الأصناف",
"DeleteMenuItem": "حذف الأصناف",
"ViewInventory": "عرض المخزون",
"CreateInventory": "إضافة للمخزون",
"EditInventory": "تعديل المخزون والكميات",
"DeleteInventory": "حذف من المخزون",
"ViewTaxes": "عرض الضرائب",
"CreateTax": "إنشاء ضريبة",
"EditTax": "تعديل ضريبة",
"DeleteTax": "حذف ضريبة",
"ViewStaff": "عرض الموظفين",
"CreateStaff": "إضافة موظف",
"EditStaff": "تعديل موظف",
"DeleteStaff": "حذف موظف",
"ManageStaff": "تعيين أدوار الفروع",
"ManageStaffCredentials": "إدارة بيانات الدخول",
"ViewAttendance": "عرض الحضور",
"ManageAttendance": "إدارة الحضور",
"ViewSchedules": "عرض المناوبات",
"ManageSchedules": "إدارة المناوبات",
"ViewLeave": "عرض طلبات الإجازة",
"ReviewLeave": "اعتماد الإجازات",
"ViewSalaries": "عرض الرواتب",
"ManageSalaries": "إدارة الرواتب",
"ViewTables": "عرض الطاولات",
"ManageTables": "إدارة الطاولات والأقسام",
"ViewReservations": "عرض الحجوزات",
"CreateReservation": "إنشاء حجز",
"EditReservation": "تعديل حجز",
"DeleteReservation": "حذف حجز",
"ViewOrders": "عرض الطلبات",
"ProcessOrders": "تسجيل الطلبات",
"EditOrder": "تعديل الطلبات",
"VoidOrder": "إبطال / إلغاء الطلبات",
"RefundOrder": "استرداد الطلبات",
"ApplyDiscount": "تطبيق الخصومات",
"CompOrder": "طلب مجاني (ضيافة)",
"HandlePayments": "استلام المدفوعات",
"UpdateOrderStatus": "تحديث حالة الطلب",
"OperateRegister": "فتح / إغلاق الصندوق",
"OpenCashDrawer": "فتح درج النقود (بدون بيع)",
"ViewQueue": "عرض قائمة الانتظار",
"ManageQueue": "إدارة قائمة الانتظار",
"ViewKitchen": "شاشة المطبخ",
"HandleDelivery": "التوصيل"
"ManageKitchenStations": "إدارة محطات المطبخ",
"ViewDelivery": "عرض التوصيل",
"HandleDelivery": "إدارة التوصيل",
"AssignDelivery": "تعيين السائق",
"ViewCustomers": "عرض العملاء",
"CreateCustomer": "إضافة عميل",
"EditCustomer": "تعديل عميل",
"DeleteCustomer": "حذف عميل",
"ViewCoupons": "عرض الكوبونات",
"CreateCoupon": "إنشاء كوبون",
"EditCoupon": "تعديل كوبون",
"DeleteCoupon": "حذف كوبون",
"ViewSms": "عرض الرسائل",
"SendSms": "إرسال حملات الرسائل",
"ManageSmsSettings": "إعدادات الرسائل",
"ViewReviews": "عرض التقييمات",
"ManageReviews": "الرد على التقييمات وإدارتها",
"ViewReports": "عرض التقارير",
"ExportReports": "تصدير التقارير",
"ViewAuditLog": "عرض سجل العمليات",
"ViewFinancials": "عرض المالية (الأرباح والخسائر)",
"ManageFinancials": "تصحيح سندات الدفع",
"ViewExpenses": "عرض المصروفات",
"CreateExpense": "إضافة مصروف",
"EditExpense": "تعديل مصروف",
"DeleteExpense": "حذف مصروف"
}
},
"appearance": {
+97 -25
View File
@@ -1328,34 +1328,106 @@
"saveError": "Failed to save role",
"deleteConfirm": "Delete role '{name}'? Employees will revert to their base role permissions.",
"groupAdmin": "Café Administration",
"groupMenu": "Menu & Inventory",
"groupStaff": "Staff",
"groupCustomer": "Customer & Tables",
"groupBranches": "Branches",
"groupMenu": "Menu",
"groupInventory": "Inventory",
"groupTaxes": "Taxes",
"groupStaff": "Staff & HR",
"groupTables": "Tables & Reservations",
"groupOrders": "Orders & POS",
"groupRegister": "Register & Cash",
"groupQueueKitchen": "Queue & Kitchen",
"groupDelivery": "Delivery",
"groupCustomers": "Customers",
"groupCoupons": "Coupons",
"groupMarketing": "Marketing & Reviews",
"groupReports": "Reports & Finance",
"groupOps": "Register Operations",
"groupKitchen": "Kitchen & Delivery",
"groupExpenses": "Expenses",
"perm": {
"ManageCafeSettings": "Café settings",
"ManageBilling": "Billing & subscription",
"ManageBranches": "Manage branches",
"ManageMenu": "Menu management",
"ManageInventory": "Inventory",
"ManageTaxes": "Taxes",
"ManagePrintSettings": "Print settings",
"ManageStaff": "Staff management",
"ManageSalaries": "Salaries",
"ReviewLeave": "Leave requests",
"ManageReservations": "Reservations",
"ManageTables": "Tables",
"ManageCoupons": "Coupons",
"ViewReports": "Reports",
"ManageExpenses": "Expenses",
"ProcessOrders": "Process orders",
"HandlePayments": "Handle payments",
"OperateRegister": "Register",
"ManageQueue": "Queue",
"ViewCafeSettings": "View café settings",
"ManageCafeSettings": "Edit café settings",
"ManageDiscoverProfile": "Discover & public profile",
"ViewBilling": "View billing",
"ManageBilling": "Manage billing & subscription",
"ManageRoles": "Manage roles",
"ViewPrintSettings": "View print settings",
"ManagePrintSettings": "Edit print settings",
"ViewBranches": "View branches",
"CreateBranch": "Create branch",
"EditBranch": "Edit branch",
"DeleteBranch": "Delete branch",
"ViewMenu": "View menu",
"CreateMenuItem": "Add menu items",
"EditMenuItem": "Edit menu items",
"DeleteMenuItem": "Delete menu items",
"ViewInventory": "View inventory",
"CreateInventory": "Add inventory",
"EditInventory": "Edit inventory & stock",
"DeleteInventory": "Delete inventory",
"ViewTaxes": "View taxes",
"CreateTax": "Create tax",
"EditTax": "Edit tax",
"DeleteTax": "Delete tax",
"ViewStaff": "View staff",
"CreateStaff": "Add staff",
"EditStaff": "Edit staff",
"DeleteStaff": "Remove staff",
"ManageStaff": "Assign branch roles",
"ManageStaffCredentials": "Manage login credentials",
"ViewAttendance": "View attendance",
"ManageAttendance": "Manage attendance",
"ViewSchedules": "View schedules",
"ManageSchedules": "Manage schedules",
"ViewLeave": "View leave requests",
"ReviewLeave": "Approve leave requests",
"ViewSalaries": "View salaries",
"ManageSalaries": "Manage salaries",
"ViewTables": "View tables",
"ManageTables": "Manage tables & sections",
"ViewReservations": "View reservations",
"CreateReservation": "Create reservation",
"EditReservation": "Edit reservation",
"DeleteReservation": "Delete reservation",
"ViewOrders": "View orders",
"ProcessOrders": "Take orders",
"EditOrder": "Edit orders",
"VoidOrder": "Void / cancel orders",
"RefundOrder": "Refund orders",
"ApplyDiscount": "Apply discounts",
"CompOrder": "Comp (free) orders",
"HandlePayments": "Take payments",
"UpdateOrderStatus": "Update order status",
"OperateRegister": "Open / close register",
"OpenCashDrawer": "Open cash drawer (no-sale)",
"ViewQueue": "View queue",
"ManageQueue": "Manage queue",
"ViewKitchen": "Kitchen display",
"HandleDelivery": "Delivery"
"ManageKitchenStations": "Manage kitchen stations",
"ViewDelivery": "View delivery",
"HandleDelivery": "Handle delivery",
"AssignDelivery": "Assign delivery",
"ViewCustomers": "View customers",
"CreateCustomer": "Add customers",
"EditCustomer": "Edit customers",
"DeleteCustomer": "Delete customers",
"ViewCoupons": "View coupons",
"CreateCoupon": "Create coupon",
"EditCoupon": "Edit coupon",
"DeleteCoupon": "Delete coupon",
"ViewSms": "View SMS",
"SendSms": "Send SMS campaigns",
"ManageSmsSettings": "SMS settings",
"ViewReviews": "View reviews",
"ManageReviews": "Reply & moderate reviews",
"ViewReports": "View reports",
"ExportReports": "Export reports",
"ViewAuditLog": "View audit log",
"ViewFinancials": "View financials (P&L)",
"ManageFinancials": "Payment corrections",
"ViewExpenses": "View expenses",
"CreateExpense": "Add expense",
"EditExpense": "Edit expense",
"DeleteExpense": "Delete expense"
}
},
"appearance": {
+96 -24
View File
@@ -1329,34 +1329,106 @@
"saveError": "ذخیره نقش ناموفق بود",
"deleteConfirm": "نقش «{name}» حذف شود؟ این کارمندان به دسترسی پیش‌فرض نقش اصلی خود بازمی‌گردند.",
"groupAdmin": "مدیریت کافه",
"groupMenu": "منو و انبار",
"groupStaff": "پرسنل",
"groupCustomer": "مشتری و میز",
"groupBranches": "شعب",
"groupMenu": "منو",
"groupInventory": "انبار و موجودی",
"groupTaxes": "مالیات",
"groupStaff": "پرسنل و منابع انسانی",
"groupTables": "میز و رزرو",
"groupOrders": "سفارش و فروش",
"groupRegister": "صندوق و وجه نقد",
"groupQueueKitchen": "صف و آشپزخانه",
"groupDelivery": "تحویل و پیک",
"groupCustomers": "مشتریان",
"groupCoupons": "کوپن‌ها",
"groupMarketing": "بازاریابی و نظرات",
"groupReports": "گزارش و مالی",
"groupOps": "عملیات صندوق",
"groupKitchen": "آشپزخانه و تحویل",
"groupExpenses": "هزینه‌ها",
"perm": {
"ManageCafeSettings": "تنظیمات کافه",
"ManageBilling": "اشتراک و پرداخت",
"ManageBranches": "مدیریت شعب",
"ManageMenu": "مدیریت منو",
"ManageInventory": "انبار و موجودی",
"ManageTaxes": الیات",
"ManagePrintSettings": "تنظیمات چاپ",
"ManageStaff": "مدیریت کارمندان",
"ManageSalaries": "حقوق و دستمزد",
"ReviewLeave": "بررسی مرخصی",
"ManageReservations": "رزروها",
"ManageTables": "میزها",
"ManageCoupons": "کوپن‌ها",
"ViewReports": "گزارش‌ها",
"ManageExpenses": "هزینه‌ها",
"ViewCafeSettings": "مشاهده تنظیمات کافه",
"ManageCafeSettings": "ویرایش تنظیمات کافه",
"ManageDiscoverProfile": "پروفایل عمومی و کوجا",
"ViewBilling": "مشاهده صورتحساب",
"ManageBilling": "مدیریت اشتراک و پرداخت",
"ManageRoles": دیریت نقش‌ها",
"ViewPrintSettings": "مشاهده تنظیمات چاپ",
"ManagePrintSettings": "ویرایش تنظیمات چاپ",
"ViewBranches": "مشاهده شعب",
"CreateBranch": "ایجاد شعبه",
"EditBranch": "ویرایش شعبه",
"DeleteBranch": "حذف شعبه",
"ViewMenu": "مشاهده منو",
"CreateMenuItem": "افزودن آیتم منو",
"EditMenuItem": "ویرایش آیتم منو",
"DeleteMenuItem": "حذف آیتم منو",
"ViewInventory": "مشاهده انبار",
"CreateInventory": "افزودن به انبار",
"EditInventory": "ویرایش انبار و موجودی",
"DeleteInventory": "حذف از انبار",
"ViewTaxes": "مشاهده مالیات",
"CreateTax": "ایجاد مالیات",
"EditTax": "ویرایش مالیات",
"DeleteTax": "حذف مالیات",
"ViewStaff": "مشاهده کارمندان",
"CreateStaff": "افزودن کارمند",
"EditStaff": "ویرایش کارمند",
"DeleteStaff": "حذف کارمند",
"ManageStaff": "تخصیص نقش شعبه",
"ManageStaffCredentials": "مدیریت اطلاعات ورود",
"ViewAttendance": "مشاهده حضور و غیاب",
"ManageAttendance": "مدیریت حضور و غیاب",
"ViewSchedules": "مشاهده شیفت‌ها",
"ManageSchedules": "مدیریت شیفت‌ها",
"ViewLeave": "مشاهده درخواست مرخصی",
"ReviewLeave": "تأیید مرخصی",
"ViewSalaries": "مشاهده حقوق",
"ManageSalaries": "مدیریت حقوق و دستمزد",
"ViewTables": "مشاهده میزها",
"ManageTables": "مدیریت میز و بخش‌ها",
"ViewReservations": "مشاهده رزروها",
"CreateReservation": "ایجاد رزرو",
"EditReservation": "ویرایش رزرو",
"DeleteReservation": "حذف رزرو",
"ViewOrders": "مشاهده سفارش‌ها",
"ProcessOrders": "ثبت سفارش",
"HandlePayments": "پردازش پرداخت",
"OperateRegister": "صندوق",
"ManageQueue": "صف انتظار",
"EditOrder": "ویرایش سفارش",
"VoidOrder": "ابطال / لغو سفارش",
"RefundOrder": "استرداد وجه سفارش",
"ApplyDiscount": "اعمال تخفیف",
"CompOrder": "سفارش رایگان (مهمان)",
"HandlePayments": "دریافت پرداخت",
"UpdateOrderStatus": "تغییر وضعیت سفارش",
"OperateRegister": "باز / بستن صندوق",
"OpenCashDrawer": "باز کردن کشوی پول (بدون فروش)",
"ViewQueue": "مشاهده صف",
"ManageQueue": "مدیریت صف",
"ViewKitchen": "نمایش آشپزخانه",
"HandleDelivery": "تحویل و پیک"
"ManageKitchenStations": "مدیریت ایستگاه‌های آشپزخانه",
"ViewDelivery": "مشاهده تحویل",
"HandleDelivery": "مدیریت تحویل",
"AssignDelivery": "تخصیص پیک",
"ViewCustomers": "مشاهده مشتریان",
"CreateCustomer": "افزودن مشتری",
"EditCustomer": "ویرایش مشتری",
"DeleteCustomer": "حذف مشتری",
"ViewCoupons": "مشاهده کوپن‌ها",
"CreateCoupon": "ایجاد کوپن",
"EditCoupon": "ویرایش کوپن",
"DeleteCoupon": "حذف کوپن",
"ViewSms": "مشاهده پیامک",
"SendSms": "ارسال کمپین پیامکی",
"ManageSmsSettings": "تنظیمات پیامک",
"ViewReviews": "مشاهده نظرات",
"ManageReviews": "پاسخ و مدیریت نظرات",
"ViewReports": "مشاهده گزارش‌ها",
"ExportReports": "خروجی گرفتن از گزارش",
"ViewAuditLog": "مشاهده گزارش رویدادها",
"ViewFinancials": "مشاهده مالی (سود و زیان)",
"ManageFinancials": "اصلاح سند پرداخت",
"ViewExpenses": "مشاهده هزینه‌ها",
"CreateExpense": "افزودن هزینه",
"EditExpense": "ویرایش هزینه",
"DeleteExpense": "حذف هزینه"
}
},
"appearance": {