Rol medico: pagina Mis ventas con KPIs y comision estimada, menu restringido y bloqueo de endpoints de dinero global
This commit is contained in:
@@ -22,6 +22,19 @@ SECRET_KEY = 'skeen.frontend.secret'
|
||||
|
||||
RANK = ROLE_RANKS
|
||||
|
||||
# Módulos de dinero globales vetados para el rol 'medico' por API: su menú ya
|
||||
# los oculta (MENU_ROLES) y aquí se cierra la vía directa con token. Su propio
|
||||
# reporte (/my/sales) no pasa por esta lista.
|
||||
MEDICO_BLOCKED_PREFIXES = (
|
||||
'/skeen/frontend/v1/reports/',
|
||||
'/skeen/frontend/v1/sales',
|
||||
'/skeen/frontend/v1/payments',
|
||||
'/skeen/frontend/v1/wallets',
|
||||
'/skeen/frontend/v1/pos/',
|
||||
'/skeen/frontend/v1/cash_closings',
|
||||
'/skeen/frontend/v1/doctors/',
|
||||
)
|
||||
|
||||
|
||||
def _cors_headers():
|
||||
return {
|
||||
@@ -118,6 +131,8 @@ def require_role(min_role='lectura'):
|
||||
return _json({'status': 'error', 'message': 'No autenticado'}, 401)
|
||||
if user.role_rank() < required:
|
||||
return _json({'status': 'error', 'message': 'Sin permiso'}, 403)
|
||||
if user.role == 'medico' and request.httprequest.path.startswith(MEDICO_BLOCKED_PREFIXES):
|
||||
return _json({'status': 'error', 'message': 'Sin permiso'}, 403)
|
||||
request.frontend_user = user
|
||||
return func(self, *args, **kw)
|
||||
return wrapper
|
||||
|
||||
Reference in New Issue
Block a user