diff --git a/docs/rest/login.rest b/docs/rest/login.rest index 121ba80..e6cec3c 100644 --- a/docs/rest/login.rest +++ b/docs/rest/login.rest @@ -39,3 +39,7 @@ Content-Type: application/json { "path": "/usuarios" } + +### +GET {{server}}/lineas/?offset=0&limit=10 +Authorization: Bearer {{token}} \ No newline at end of file diff --git a/project/api/validaciones.py b/project/api/validaciones.py index 2906fd9..d134809 100755 --- a/project/api/validaciones.py +++ b/project/api/validaciones.py @@ -2,7 +2,7 @@ def rut_valido(rut): rut = rut.replace(".", "").replace("-", "") # Eliminar puntos y guiones if len(rut) < 2: return False - verificador = rut[-1] + verificador = rut[-1].upper() numero = rut[:-1] try: suma = 0 @@ -14,7 +14,7 @@ def rut_valido(rut): if digito_verificador == 11: digito_verificador = 0 if digito_verificador == 10: - digito_verificador = "k" - return str(digito_verificador) == verificador.lower() + digito_verificador = "K" + return str(digito_verificador) == verificador except ValueError: return False diff --git a/project/api/views/linea.py b/project/api/views/linea.py index 3ac71d6..a58ec49 100755 --- a/project/api/views/linea.py +++ b/project/api/views/linea.py @@ -17,21 +17,18 @@ class LineaViewSet(viewsets.ModelViewSet): queryset = models.Linea.objects.all() serializer_class = serializers.LineaSerializer 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', 'rollinea__id_rol'] 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)) + if usuario.superuser != True: + self.request.GET.rollinea__id_rol = usuario.id_rol.id_rol + request.GET.rollinea__id_rol = usuario.id_rol.id_rol + # request.GET.setdefault('rollinea__id_rol',usuario.id_rol) - return JsonResponse(lineas, safe=False) - else: - return super().list(request, pk, *args, **kwargs) + return super().list(request, pk, *args, **kwargs) @action(detail=False, methods=['get']) def proto(self, request, pk=None): diff --git a/project/api/views/usuario.py b/project/api/views/usuario.py index 5e2f76b..62438d6 100755 --- a/project/api/views/usuario.py +++ b/project/api/views/usuario.py @@ -48,14 +48,19 @@ class UsuarioViewSet(viewsets.ModelViewSet): persona.id_tipo_tratamiento = id_tipo_tratamiento persona.save() + rol = models.Rol.objects.filter(id_rol=input.get('id_rol',None)).first() + if rol == None: + raise ValueError('Rol no encontrado') + usuario = models.Usuario( rut = persona, login = input['login'], + id_rol = rol, vigente = input.get('vigente', False), ) usuario.save() - logging.error(f'clave = {input["clave"]}') + # logging.error(f'clave = {input["clave"]}') if input['clave']: logging.error('Modificar clave de usuario') clave = models.UsuarioClave.objects.filter(login = usuario.login).first() @@ -68,7 +73,7 @@ class UsuarioViewSet(viewsets.ModelViewSet): else: logging.error('Clave Usuario se creará') clave = models.UsuarioClave( - login = usuario.login, + login = usuario, clave = input['clave'], fecha_modificacion = datetime.datetime.now() ) @@ -153,14 +158,14 @@ class UsuarioViewSet(viewsets.ModelViewSet): return HttpResponse(str(e), status = 500) @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'] usuario = models.Usuario.objects.filter(login=login).first() - escritura = usuario.superuser + escritura = usuario.superuser == True if 'path' in input: path = input.get('path') @@ -187,4 +192,4 @@ class UsuarioViewSet(viewsets.ModelViewSet): 'nombre_app': registro.id_aplicacion.nombre_app, }) - return JsonResponse({ "aplicaciones": aplicaciones }) \ No newline at end of file + return JsonResponse({ "aplicaciones": aplicaciones })