Roles: entrenador renombrado a administracion (administracion de clinica, sin Configuracion)
This commit is contained in:
@@ -14,38 +14,40 @@ const ROLE_RANK: Record<FrontendRole, number> = {
|
|||||||
cosmetologia: 50,
|
cosmetologia: 50,
|
||||||
psicologa: 50,
|
psicologa: 50,
|
||||||
farmacia: 50,
|
farmacia: 50,
|
||||||
entrenador: 10,
|
administracion: 10,
|
||||||
marketing: 10,
|
marketing: 10,
|
||||||
lectura: 10,
|
lectura: 10,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Visibilidad del menú por ruta. Si una ruta no está listada, se muestra a todos los roles.
|
// Visibilidad del menú por ruta. Si una ruta no está listada, se muestra a todos los roles.
|
||||||
|
// 'administracion' (administración de la clínica) ve toda la operación excepto
|
||||||
|
// /configuracion (solo admin del sistema), /mis-ventas, /cumpleanos y /wacrm/*.
|
||||||
const MENU_ROLES: Record<string, FrontendRole[]> = {
|
const MENU_ROLES: Record<string, FrontendRole[]> = {
|
||||||
'/': ['admin', 'recepcion', 'medico', 'lectura'],
|
'/': ['admin', 'recepcion', 'medico', 'lectura', 'administracion'],
|
||||||
'/agenda': ['admin', 'recepcion', 'medico'],
|
'/agenda': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/mis-ventas': ['medico'],
|
'/mis-ventas': ['medico'],
|
||||||
'/pacientes': ['admin', 'recepcion', 'medico', 'lectura'],
|
'/pacientes': ['admin', 'recepcion', 'medico', 'lectura', 'administracion'],
|
||||||
'/pos': ['admin', 'recepcion'],
|
'/pos': ['admin', 'recepcion', 'administracion'],
|
||||||
'/visitas': ['admin', 'recepcion', 'medico'],
|
'/visitas': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/consultas': ['admin', 'recepcion', 'medico'],
|
'/consultas': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/expedientes': ['admin', 'recepcion', 'medico'],
|
'/expedientes': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/medicos': ['admin', 'recepcion'],
|
'/medicos': ['admin', 'recepcion', 'administracion'],
|
||||||
'/servicios': ['admin', 'recepcion', 'medico', 'lectura'],
|
'/servicios': ['admin', 'recepcion', 'medico', 'lectura', 'administracion'],
|
||||||
'/productos': ['admin', 'recepcion', 'lectura'], // deprecated: redirige a /inventario
|
'/productos': ['admin', 'recepcion', 'lectura', 'administracion'], // deprecated: redirige a /inventario
|
||||||
'/ventas': ['admin', 'recepcion'],
|
'/ventas': ['admin', 'recepcion', 'administracion'],
|
||||||
'/pagos': ['admin', 'recepcion'],
|
'/pagos': ['admin', 'recepcion', 'administracion'],
|
||||||
'/monedero': ['admin', 'recepcion', 'lectura'],
|
'/monedero': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/inventario': ['admin', 'recepcion', 'lectura'],
|
'/inventario': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/cortes': ['admin', 'recepcion'],
|
'/cortes': ['admin', 'recepcion', 'administracion'],
|
||||||
'/reportes': ['admin', 'recepcion', 'lectura'],
|
'/reportes': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=adeudos': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=adeudos': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=comisiones': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=comisiones': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=horas-agenda': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=horas-agenda': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=paquetes': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=paquetes': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=vendedores': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=vendedores': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=concentrado': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=concentrado': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=recomendaciones': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=recomendaciones': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=exportar': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=exportar': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/configuracion': ['admin'],
|
'/configuracion': ['admin'],
|
||||||
'/cumpleanos': ['admin', 'recepcion'],
|
'/cumpleanos': ['admin', 'recepcion'],
|
||||||
'/wacrm/messages': ['admin', 'recepcion'],
|
'/wacrm/messages': ['admin', 'recepcion'],
|
||||||
@@ -183,7 +185,7 @@ export const ROLE_LABELS: Record<FrontendRole, string> = {
|
|||||||
cosmetologia: 'Cosmetología',
|
cosmetologia: 'Cosmetología',
|
||||||
psicologa: 'Psicóloga',
|
psicologa: 'Psicóloga',
|
||||||
farmacia: 'Farmacia',
|
farmacia: 'Farmacia',
|
||||||
entrenador: 'Entrenador',
|
administracion: 'Administración',
|
||||||
marketing: 'Marketing',
|
marketing: 'Marketing',
|
||||||
lectura: 'Lectura',
|
lectura: 'Lectura',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -556,7 +556,7 @@ export interface WacrmLead {
|
|||||||
created_at: string | null;
|
created_at: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type FrontendRole = 'admin' | 'medico' | 'recepcion' | 'enfermeria' | 'cosmetologia' | 'psicologa' | 'farmacia' | 'entrenador' | 'marketing' | 'lectura';
|
export type FrontendRole = 'admin' | 'medico' | 'recepcion' | 'enfermeria' | 'cosmetologia' | 'psicologa' | 'farmacia' | 'administracion' | 'marketing' | 'lectura';
|
||||||
|
|
||||||
export interface FrontendUser {
|
export interface FrontendUser {
|
||||||
id: number;
|
id: number;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ como desde controladores sin problemas de orden de carga.
|
|||||||
|
|
||||||
La matriz se persiste en ir.config_parameter 'skeen.menu_roles' como JSON
|
La matriz se persiste en ir.config_parameter 'skeen.menu_roles' como JSON
|
||||||
{href: [roles...]}. Si no existe, se usan los defaults de DEFAULT_MENU_ROLES
|
{href: [roles...]}. Si no existe, se usan los defaults de DEFAULT_MENU_ROLES
|
||||||
(mismos que MENU_ROLES hardcodeado del frontend) y los 6 roles nuevos heredan
|
(mismos que MENU_ROLES hardcodeado del frontend) y los 5 roles nuevos heredan
|
||||||
el mismo set de secciones que 'lectura'.
|
el mismo set de secciones que 'lectura'.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ ROLE_SELECTION = [
|
|||||||
('cosmetologia', 'Cosmetología'),
|
('cosmetologia', 'Cosmetología'),
|
||||||
('psicologa', 'Psicóloga'),
|
('psicologa', 'Psicóloga'),
|
||||||
('farmacia', 'Farmacia'),
|
('farmacia', 'Farmacia'),
|
||||||
('entrenador', 'Entrenador'),
|
('administracion', 'Administración'),
|
||||||
('marketing', 'Marketing'),
|
('marketing', 'Marketing'),
|
||||||
('lectura', 'Lectura'),
|
('lectura', 'Lectura'),
|
||||||
]
|
]
|
||||||
@@ -35,7 +35,7 @@ ROLE_RANKS = {
|
|||||||
'cosmetologia': 50,
|
'cosmetologia': 50,
|
||||||
'psicologa': 50,
|
'psicologa': 50,
|
||||||
'farmacia': 50,
|
'farmacia': 50,
|
||||||
'entrenador': 10,
|
'administracion': 10,
|
||||||
'marketing': 10,
|
'marketing': 10,
|
||||||
'lectura': 10,
|
'lectura': 10,
|
||||||
}
|
}
|
||||||
@@ -43,32 +43,35 @@ ROLE_RANKS = {
|
|||||||
MENU_ROLES_KEY = 'skeen.menu_roles'
|
MENU_ROLES_KEY = 'skeen.menu_roles'
|
||||||
|
|
||||||
# Defaults = MENU_ROLES de src/lib/auth.tsx (4 roles originales).
|
# Defaults = MENU_ROLES de src/lib/auth.tsx (4 roles originales).
|
||||||
|
# 'administracion' (personal de administración de la clínica) ve toda la
|
||||||
|
# operación EXCEPTO /configuracion (solo admin del sistema), /mis-ventas,
|
||||||
|
# /cumpleanos y /wacrm/*.
|
||||||
DEFAULT_MENU_ROLES = {
|
DEFAULT_MENU_ROLES = {
|
||||||
'/': ['admin', 'recepcion', 'medico', 'lectura'],
|
'/': ['admin', 'recepcion', 'medico', 'lectura', 'administracion'],
|
||||||
'/agenda': ['admin', 'recepcion', 'medico'],
|
'/agenda': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/mis-ventas': ['medico'],
|
'/mis-ventas': ['medico'],
|
||||||
'/pacientes': ['admin', 'recepcion', 'medico', 'lectura'],
|
'/pacientes': ['admin', 'recepcion', 'medico', 'lectura', 'administracion'],
|
||||||
'/pos': ['admin', 'recepcion'],
|
'/pos': ['admin', 'recepcion', 'administracion'],
|
||||||
'/visitas': ['admin', 'recepcion', 'medico'],
|
'/visitas': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/consultas': ['admin', 'recepcion', 'medico'],
|
'/consultas': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/expedientes': ['admin', 'recepcion', 'medico'],
|
'/expedientes': ['admin', 'recepcion', 'medico', 'administracion'],
|
||||||
'/medicos': ['admin', 'recepcion'],
|
'/medicos': ['admin', 'recepcion', 'administracion'],
|
||||||
'/servicios': ['admin', 'recepcion', 'medico', 'lectura'],
|
'/servicios': ['admin', 'recepcion', 'medico', 'lectura', 'administracion'],
|
||||||
'/productos': ['admin', 'recepcion', 'lectura'],
|
'/productos': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/ventas': ['admin', 'recepcion'],
|
'/ventas': ['admin', 'recepcion', 'administracion'],
|
||||||
'/pagos': ['admin', 'recepcion'],
|
'/pagos': ['admin', 'recepcion', 'administracion'],
|
||||||
'/monedero': ['admin', 'recepcion', 'lectura'],
|
'/monedero': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/inventario': ['admin', 'recepcion', 'lectura'],
|
'/inventario': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/cortes': ['admin', 'recepcion'],
|
'/cortes': ['admin', 'recepcion', 'administracion'],
|
||||||
'/reportes': ['admin', 'recepcion', 'lectura'],
|
'/reportes': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=adeudos': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=adeudos': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=comisiones': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=comisiones': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=horas-agenda': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=horas-agenda': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=paquetes': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=paquetes': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=vendedores': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=vendedores': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=concentrado': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=concentrado': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=recomendaciones': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=recomendaciones': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/reportes?tab=exportar': ['admin', 'recepcion', 'lectura'],
|
'/reportes?tab=exportar': ['admin', 'recepcion', 'lectura', 'administracion'],
|
||||||
'/configuracion': ['admin'],
|
'/configuracion': ['admin'],
|
||||||
'/cumpleanos': ['admin', 'recepcion'],
|
'/cumpleanos': ['admin', 'recepcion'],
|
||||||
'/wacrm/messages': ['admin', 'recepcion'],
|
'/wacrm/messages': ['admin', 'recepcion'],
|
||||||
@@ -76,7 +79,7 @@ DEFAULT_MENU_ROLES = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Roles nuevos que por default ven lo mismo que 'lectura'.
|
# Roles nuevos que por default ven lo mismo que 'lectura'.
|
||||||
READ_ONLY_NEW_ROLES = ('enfermeria', 'cosmetologia', 'psicologa', 'farmacia', 'entrenador', 'marketing')
|
READ_ONLY_NEW_ROLES = ('enfermeria', 'cosmetologia', 'psicologa', 'farmacia', 'marketing')
|
||||||
|
|
||||||
|
|
||||||
def default_menu_roles():
|
def default_menu_roles():
|
||||||
|
|||||||
Reference in New Issue
Block a user