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}} Authorization: Bearer {{token}}
### ###
# @name permisos # @name permisos_todos
POST {{server}}/usuarios/permisos/ POST {{server}}/usuarios/permisos/
Authorization: Bearer {{token}} Authorization: Bearer {{token}}
###
# @name permisos_path
POST {{server}}/usuarios/permisos/
Authorization: Bearer {{token}}
Content-Type: application/json
{
"path": "/usuarios"
}

View File

@ -153,25 +153,36 @@ class UsuarioViewSet(viewsets.ModelViewSet):
return HttpResponse(str(e), status = 500) return HttpResponse(str(e), status = 500)
@action(detail=False, methods=['post']) @action(detail=False, methods=['post'])
def permisos(self, request): def permisos(self, request):
input = {}
if request.body > b'':
input = json.loads(request.body)
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()
registros = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol)
aplicaciones = [] if 'path' in input:
for registro in registros: path = input.get('path')
if registro.id_aplicacion.vigente: aplicacion = models.Aplicacion.objects.filter(path_app=path).first()
rol_app = models.RolAplicacion.objects.filter(id_rol=registro.id_rol, id_aplicacion=registro.id_aplicacion).first() rol_aplicacion = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol, id_aplicacion=aplicacion.id_aplicacion).first()
escritura = True return JsonResponse({
if rol_app != None: 'path_app': path,
escritura = rol_app.solo_visualizar != True 'nombre_app': aplicacion.nombre_app,
'escritura': rol_aplicacion.solo_visualizar == False
aplicaciones.append({ })
'id_aplicacion': registro.id_aplicacion.id_aplicacion, else:
'path_app': registro.id_aplicacion.path_app, registros = models.RolAplicacion.objects.filter(id_rol=usuario.id_rol)
'nombre_app': registro.id_aplicacion.nombre_app, aplicaciones = []
'escritura': escritura 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,
'nombre_app': registro.id_aplicacion.nombre_app,
})
return JsonResponse({ "aplicaciones": aplicaciones }) return JsonResponse({ "aplicaciones": aplicaciones })