se filtran lineas si usuario no es superuser
parent
840f0449d6
commit
9d1507f445
|
@ -5,7 +5,8 @@ from rest_framework.decorators import action, api_view
|
|||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from django.db import connection
|
||||
from .. import models, serializers
|
||||
from django.http import JsonResponse
|
||||
from django.http import JsonResponse, HttpResponse
|
||||
from django.forms.models import model_to_dict
|
||||
from os import getenv
|
||||
import redis
|
||||
import json
|
||||
|
@ -18,6 +19,19 @@ class LineaViewSet(viewsets.ModelViewSet):
|
|||
filter_backends = [DjangoFilterBackend]
|
||||
filterset_fields = ['id_operador', 'route_short_name', 'route_long_name', 'vigente']
|
||||
|
||||
def list(self, request, pk=None, *args, **kwargs):
|
||||
login = request.jwt_info['login']
|
||||
usuario = models.Usuario.objects.filter(login=login).first()
|
||||
|
||||
if usuario.superuser == False:
|
||||
rol_lineas = models.RolLinea.objects.filter(id_rol=usuario.id_rol)
|
||||
lineas = []
|
||||
for row in rol_lineas:
|
||||
lineas.append(model_to_dict(row.id_linea))
|
||||
|
||||
return JsonResponse(lineas, safe=False)
|
||||
else:
|
||||
return super().list(request, pk, *args, **kwargs)
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def proto(self, request, pk=None):
|
||||
|
|
|
@ -160,15 +160,20 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
|||
|
||||
login = request.jwt_info['login']
|
||||
usuario = models.Usuario.objects.filter(login=login).first()
|
||||
escritura = usuario.superuser
|
||||
|
||||
if 'path' in input:
|
||||
path = input.get('path')
|
||||
aplicacion = models.Aplicacion.objects.filter(path_app=path).first()
|
||||
rol_aplicacion = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol, id_aplicacion=aplicacion.id_aplicacion).first()
|
||||
|
||||
if escritura == False:
|
||||
rol_aplicacion = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol, id_aplicacion=aplicacion.id_aplicacion).first()
|
||||
escritura = rol_aplicacion.solo_visualizar == False
|
||||
|
||||
return JsonResponse({
|
||||
'path_app': path,
|
||||
'nombre_app': aplicacion.nombre_app,
|
||||
'escritura': rol_aplicacion.solo_visualizar == False
|
||||
'escritura': escritura
|
||||
})
|
||||
else:
|
||||
registros = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol)
|
||||
|
@ -176,9 +181,6 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
|||
for registro in registros:
|
||||
if registro.id_aplicacion.vigente:
|
||||
rol_app = models.RolAplicacion.objects.filter(id_rol=registro.id_rol, id_aplicacion=registro.id_aplicacion).first()
|
||||
escritura = True
|
||||
if rol_app != None:
|
||||
escritura = rol_app.solo_visualizar != True
|
||||
|
||||
aplicaciones.append({
|
||||
'path_app': registro.id_aplicacion.path_app,
|
||||
|
|
Loading…
Reference in New Issue