Files
xenia-pos-local/manager_dashboard/src/hooks/usePermissions.js
bonamin 34ae328b0d feat: bump client-services (accumulated feature work + deploy fixes)
Snapshot of in-progress work across local_backend, manager_dashboard,
and waiter_pwa (pricing, chat, fiscal, prep zones, recovery codes, CRM,
inventory, permissions), plus the nginx/docker-compose deploy fixes for
the Unraid + NPM reverse-proxy setup.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 10:00:14 +03:00

50 lines
1.4 KiB
JavaScript

import useAuthStore from '../store/authStore'
/**
* Returns a permissions object derived from the logged-in user.
* Superadmin always has every permission regardless of stored flags.
*/
export default function usePermissions() {
const user = useAuthStore(s => s.user)
if (!user) {
return {
isSuperadmin: false,
accessDashboard: false,
accessWaiterApp: false,
accessKds: false,
cancelOrders: false,
applyDiscounts: false,
modifyPrices: false,
openOrders: false,
closeOrders: false,
viewReports: false,
manageStaff: false,
manageTables: false,
manageMenu: false,
manageSettings: false,
}
}
const superadmin = user.role === 'superadmin'
const p = (flag) => superadmin || !!user[flag]
return {
isSuperadmin: superadmin,
accessDashboard: p('perm_access_dashboard'),
accessWaiterApp: p('perm_access_waiter_app'),
accessKds: p('perm_access_kds'),
cancelOrders: p('perm_cancel_orders'),
applyDiscounts: p('perm_apply_discounts'),
modifyPrices: p('perm_modify_prices'),
openOrders: p('perm_open_orders'),
closeOrders: p('perm_close_orders'),
viewReports: p('perm_view_reports'),
manageStaff: p('perm_manage_staff'),
manageTables: p('perm_manage_tables'),
manageMenu: p('perm_manage_menu'),
manageSettings: p('perm_manage_settings'),
}
}