forked from TDTP/admin_transporte_backend
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_filters.rest_framework import DjangoFilterBackend
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
from .. import models, serializers
|
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
|
from os import getenv
|
||||||
import redis
|
import redis
|
||||||
import json
|
import json
|
||||||
|
@ -18,6 +19,19 @@ class LineaViewSet(viewsets.ModelViewSet):
|
||||||
filter_backends = [DjangoFilterBackend]
|
filter_backends = [DjangoFilterBackend]
|
||||||
filterset_fields = ['id_operador', 'route_short_name', 'route_long_name', 'vigente']
|
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'])
|
@action(detail=False, methods=['get'])
|
||||||
def proto(self, request, pk=None):
|
def proto(self, request, pk=None):
|
||||||
|
|
|
@ -160,15 +160,20 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
|
|
||||||
login = request.jwt_info['login']
|
login = request.jwt_info['login']
|
||||||
usuario = models.Usuario.objects.filter(login=login).first()
|
usuario = models.Usuario.objects.filter(login=login).first()
|
||||||
|
escritura = usuario.superuser
|
||||||
|
|
||||||
if 'path' in input:
|
if 'path' in input:
|
||||||
path = input.get('path')
|
path = input.get('path')
|
||||||
aplicacion = models.Aplicacion.objects.filter(path_app=path).first()
|
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({
|
return JsonResponse({
|
||||||
'path_app': path,
|
'path_app': path,
|
||||||
'nombre_app': aplicacion.nombre_app,
|
'nombre_app': aplicacion.nombre_app,
|
||||||
'escritura': rol_aplicacion.solo_visualizar == False
|
'escritura': escritura
|
||||||
})
|
})
|
||||||
else:
|
else:
|
||||||
registros = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol)
|
registros = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol)
|
||||||
|
@ -176,9 +181,6 @@ class UsuarioViewSet(viewsets.ModelViewSet):
|
||||||
for registro in registros:
|
for registro in registros:
|
||||||
if registro.id_aplicacion.vigente:
|
if registro.id_aplicacion.vigente:
|
||||||
rol_app = models.RolAplicacion.objects.filter(id_rol=registro.id_rol, id_aplicacion=registro.id_aplicacion).first()
|
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({
|
aplicaciones.append({
|
||||||
'path_app': registro.id_aplicacion.path_app,
|
'path_app': registro.id_aplicacion.path_app,
|
||||||
|
|
Loading…
Reference in New Issue