se modifica funcion que entrega permiso

francisco/photos
Francisco Sandoval 2024-01-07 21:26:29 -03:00
parent d42149192f
commit 840f0449d6
2 changed files with 40 additions and 19 deletions

View File

@ -26,6 +26,16 @@ GET {{server}}/paraderos-image/?id_paradero=42318
Authorization: Bearer {{token}}
###
# @name permisos
# @name permisos_todos
POST {{server}}/usuarios/permisos/
Authorization: Bearer {{token}}
###
# @name permisos_path
POST {{server}}/usuarios/permisos/
Authorization: Bearer {{token}}
Content-Type: application/json
{
"path": "/usuarios"
}

View File

@ -154,24 +154,35 @@ class UsuarioViewSet(viewsets.ModelViewSet):
@action(detail=False, methods=['post'])
def permisos(self, request):
input = {}
if request.body > b'':
input = json.loads(request.body)
login = request.jwt_info['login']
usuario = models.Usuario.objects.filter(login=login).first()
registros = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol)
aplicaciones = []
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
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()
return JsonResponse({
'path_app': path,
'nombre_app': aplicacion.nombre_app,
'escritura': rol_aplicacion.solo_visualizar == False
})
else:
registros = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol)
aplicaciones = []
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({
'id_aplicacion': registro.id_aplicacion.id_aplicacion,
'path_app': registro.id_aplicacion.path_app,
'nombre_app': registro.id_aplicacion.nombre_app,
'escritura': escritura
})
aplicaciones.append({
'path_app': registro.id_aplicacion.path_app,
'nombre_app': registro.id_aplicacion.nombre_app,
})
return JsonResponse({ "aplicaciones": aplicaciones })
return JsonResponse({ "aplicaciones": aplicaciones })