fix(roles): restringe usuarios Taller y Mecanico a solo la seccion de Taller y oculta precios
- sidebar.js: itemAllowed incluye mechanic junto a workshop -> solo muestra Taller - app-init.js: redirige a /pos/workshop si el rol es workshop/mechanic - config_bp.py: remueve customers.view y fleet.view de los permisos por defecto de workshop/mechanic - workshop.js: hidePrices ahora tambien aplica para mechanic; oculta columnas/inputs de precio - app-init.js/config.js: agrega etiquetas de rol para workshop y mechanic - workshop.html: marca columnas de precio con price-col y oculta input catRate Tests: 35 passed
This commit is contained in:
@@ -43,7 +43,8 @@
|
||||
var _t = typeof window.t === 'function' ? window.t : function(k) { return k; };
|
||||
var roleLabels = {
|
||||
'owner': _t('role_owner'), 'admin': _t('role_admin'), 'cashier': _t('role_cashier'),
|
||||
'warehouse': _t('role_warehouse'), 'accountant': _t('role_accountant')
|
||||
'warehouse': _t('role_warehouse'), 'accountant': _t('role_accountant'),
|
||||
'workshop': 'Taller', 'mechanic': 'Mecanico'
|
||||
};
|
||||
var roleLabel = roleLabels[role] || role;
|
||||
var initials = name.split(' ').map(function(p) { return p[0]; }).join('').toUpperCase().substring(0, 2);
|
||||
@@ -180,6 +181,12 @@
|
||||
permissions: payload.permissions || []
|
||||
};
|
||||
|
||||
// ─── Restrict workshop/mechanic users to the workshop view only ───
|
||||
if ((role === 'workshop' || role === 'mechanic') && window.location.pathname !== '/pos/workshop') {
|
||||
window.location.replace('/pos/workshop');
|
||||
return;
|
||||
}
|
||||
|
||||
// ─── Preload enabled modules for sidebar filtering ───
|
||||
try {
|
||||
fetch('/pos/api/config/modules', {
|
||||
|
||||
Reference in New Issue
Block a user