fix crear usuario

francisco/photos
Francisco Sandoval 2024-01-12 20:11:07 -03:00
parent 9d1507f445
commit 6cafb320aa
4 changed files with 23 additions and 17 deletions

View File

@ -39,3 +39,7 @@ Content-Type: application/json
{ {
"path": "/usuarios" "path": "/usuarios"
} }
###
GET {{server}}/lineas/?offset=0&limit=10
Authorization: Bearer {{token}}

View File

@ -2,7 +2,7 @@ def rut_valido(rut):
rut = rut.replace(".", "").replace("-", "") # Eliminar puntos y guiones rut = rut.replace(".", "").replace("-", "") # Eliminar puntos y guiones
if len(rut) < 2: if len(rut) < 2:
return False return False
verificador = rut[-1] verificador = rut[-1].upper()
numero = rut[:-1] numero = rut[:-1]
try: try:
suma = 0 suma = 0
@ -14,7 +14,7 @@ def rut_valido(rut):
if digito_verificador == 11: if digito_verificador == 11:
digito_verificador = 0 digito_verificador = 0
if digito_verificador == 10: if digito_verificador == 10:
digito_verificador = "k" digito_verificador = "K"
return str(digito_verificador) == verificador.lower() return str(digito_verificador) == verificador
except ValueError: except ValueError:
return False return False

View File

@ -17,21 +17,18 @@ class LineaViewSet(viewsets.ModelViewSet):
queryset = models.Linea.objects.all() queryset = models.Linea.objects.all()
serializer_class = serializers.LineaSerializer serializer_class = serializers.LineaSerializer
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', 'rollinea__id_rol']
def list(self, request, pk=None, *args, **kwargs): def list(self, request, pk=None, *args, **kwargs):
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()
if usuario.superuser == False: if usuario.superuser != True:
rol_lineas = models.RolLinea.objects.filter(id_rol=usuario.id_rol) self.request.GET.rollinea__id_rol = usuario.id_rol.id_rol
lineas = [] request.GET.rollinea__id_rol = usuario.id_rol.id_rol
for row in rol_lineas: # request.GET.setdefault('rollinea__id_rol',usuario.id_rol)
lineas.append(model_to_dict(row.id_linea))
return JsonResponse(lineas, safe=False) return super().list(request, pk, *args, **kwargs)
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):

View File

@ -48,14 +48,19 @@ class UsuarioViewSet(viewsets.ModelViewSet):
persona.id_tipo_tratamiento = id_tipo_tratamiento persona.id_tipo_tratamiento = id_tipo_tratamiento
persona.save() 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( usuario = models.Usuario(
rut = persona, rut = persona,
login = input['login'], login = input['login'],
id_rol = rol,
vigente = input.get('vigente', False), vigente = input.get('vigente', False),
) )
usuario.save() usuario.save()
logging.error(f'clave = {input["clave"]}') # logging.error(f'clave = {input["clave"]}')
if input['clave']: if input['clave']:
logging.error('Modificar clave de usuario') logging.error('Modificar clave de usuario')
clave = models.UsuarioClave.objects.filter(login = usuario.login).first() clave = models.UsuarioClave.objects.filter(login = usuario.login).first()
@ -68,7 +73,7 @@ class UsuarioViewSet(viewsets.ModelViewSet):
else: else:
logging.error('Clave Usuario se creará') logging.error('Clave Usuario se creará')
clave = models.UsuarioClave( clave = models.UsuarioClave(
login = usuario.login, login = usuario,
clave = input['clave'], clave = input['clave'],
fecha_modificacion = datetime.datetime.now() fecha_modificacion = datetime.datetime.now()
) )
@ -153,14 +158,14 @@ 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 = {} input = {}
if request.body > b'': if request.body > b'':
input = json.loads(request.body) 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()
escritura = usuario.superuser escritura = usuario.superuser == True
if 'path' in input: if 'path' in input:
path = input.get('path') path = input.get('path')
@ -187,4 +192,4 @@ class UsuarioViewSet(viewsets.ModelViewSet):
'nombre_app': registro.id_aplicacion.nombre_app, 'nombre_app': registro.id_aplicacion.nombre_app,
}) })
return JsonResponse({ "aplicaciones": aplicaciones }) return JsonResponse({ "aplicaciones": aplicaciones })