Permisos: marketing (export completo, agenda/citas, cumpleanos, visitas, WACRM), gerencia gestiona usuarios y roles, recepcion edita expedientes, cosmetologas ven agenda, fix del sidebar que no dejaba seleccionar Leads
This commit is contained in:
@@ -36,7 +36,9 @@ ROLE_RANKS = {
|
||||
'psicologa': 50,
|
||||
'farmacia': 50,
|
||||
'gerencia': 50,
|
||||
'marketing': 10,
|
||||
# marketing pasó a 50: puede agendar citas y escribir en el WACRM, igual
|
||||
# que recepción (los permisos de ESCRITURA dependen del rango).
|
||||
'marketing': 50,
|
||||
'lectura': 10,
|
||||
}
|
||||
|
||||
@@ -48,7 +50,7 @@ MENU_ROLES_KEY = 'skeen.menu_roles'
|
||||
# /cumpleanos y /wacrm/*.
|
||||
DEFAULT_MENU_ROLES = {
|
||||
'/' : ['admin', 'medico', 'recepcion', 'enfermeria', 'cosmetologia', 'psicologa', 'farmacia', 'gerencia', 'marketing', 'lectura'],
|
||||
'/agenda': ['admin', 'recepcion', 'medico', 'gerencia'],
|
||||
'/agenda': ['admin', 'recepcion', 'medico', 'gerencia', 'cosmetologia', 'marketing'],
|
||||
'/mis-ventas': ['medico'],
|
||||
'/pacientes': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
'/pos': ['admin', 'recepcion', 'gerencia'],
|
||||
@@ -71,24 +73,43 @@ DEFAULT_MENU_ROLES = {
|
||||
'/reportes?tab=concentrado': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=recomendaciones': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/reportes?tab=exportar': ['admin', 'recepcion', 'lectura', 'gerencia'],
|
||||
'/configuracion': ['admin'],
|
||||
'/cumpleanos': ['admin', 'recepcion'],
|
||||
'/wacrm/messages': ['admin', 'recepcion'],
|
||||
'/wacrm/leads': ['admin', 'recepcion'],
|
||||
'/configuracion': ['admin', 'gerencia'],
|
||||
'/cumpleanos': ['admin', 'recepcion', 'gerencia', 'marketing'],
|
||||
'/wacrm/messages': ['admin', 'recepcion', 'gerencia', 'marketing'],
|
||||
'/wacrm/leads': ['admin', 'recepcion', 'gerencia', 'marketing'],
|
||||
# El chat interno se lista explícitamente para dejar fuera a marketing
|
||||
# (antes, al no estar listado, lo veía todo el mundo).
|
||||
'/chat': ['admin', 'medico', 'recepcion', 'enfermeria', 'cosmetologia', 'psicologa', 'farmacia', 'gerencia', 'lectura'],
|
||||
}
|
||||
|
||||
# Marketing NO hereda los menús de 'lectura': sólo estos (mínimo privilegio).
|
||||
MARKETING_MENUS = (
|
||||
'/', '/agenda', '/pacientes', '/cumpleanos', '/visitas',
|
||||
'/wacrm/messages', '/wacrm/leads',
|
||||
)
|
||||
|
||||
# Roles nuevos que por default ven lo mismo que 'lectura'.
|
||||
READ_ONLY_NEW_ROLES = ('enfermeria', 'cosmetologia', 'psicologa', 'farmacia', 'marketing')
|
||||
|
||||
|
||||
def default_menu_roles():
|
||||
"""Matriz por default: MENU_ROLES + roles nuevos donde esté 'lectura'."""
|
||||
"""Matriz por default: MENU_ROLES + roles nuevos donde esté 'lectura'.
|
||||
|
||||
Marketing es la excepción: no hereda lo de 'lectura', sólo entra en sus
|
||||
menús explícitos (agenda, pacientes, cumpleaños, visitas y WACRM).
|
||||
"""
|
||||
matrix = {}
|
||||
for href, roles in DEFAULT_MENU_ROLES.items():
|
||||
r = list(roles)
|
||||
if 'lectura' in roles:
|
||||
r.extend(nr for nr in READ_ONLY_NEW_ROLES if nr not in r)
|
||||
matrix[href] = r
|
||||
for href in matrix:
|
||||
matrix[href] = [r for r in matrix[href] if r != 'marketing']
|
||||
for href in MARKETING_MENUS:
|
||||
matrix.setdefault(href, [])
|
||||
if 'marketing' not in matrix[href]:
|
||||
matrix[href].append('marketing')
|
||||
return matrix
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user