示例#1
0
def update_changes(usuario: Usuario, data) -> None:
    usuario.login = data.get('login' , usuario.login)
    usuario.nome = data.get('nome' , usuario.nome)
    if data.get('senha', 0) != 0:
        usuario.senha = data['senha']
    usuario.ativo = data.get('ativo', usuario.ativo)
    db.session.commit()
示例#2
0
def save_new_user(data: Dict[str, str]) -> Tuple[Dict[str, str], int]:
    usuario = Usuario.query.filter(
            Usuario.login == data['login']
    ).first()
    
    perfil = Perfil.query.filter_by(id=data['perfil_id'], ativo=True).first()
    if not perfil:
        response_object = {
            'status': 'Falha',
            'message': 'Perfil não encontrado ou inativo.',
        }
        return response_object, 404

    if not usuario:
        novo_usuario = Usuario(
            login=data['login'],
            senha=data['senha'],
            nome=data['nome'],
            perfil_id=data['perfil_id'],
        )
        save_changes(novo_usuario)
        response_object = {
            'status': 'Sucesso',
            'message': 'Usuário registrado com sucesso.',
            'id' : novo_usuario.id,
        }
        return response_object, 201
        # return generate_token(new_user)
    else:
        response_object = {
            'status': 'Falha',
            'message': 'Login ou nome já existente.',
        }
        return response_object, 409
示例#3
0
    def login_user(data: Dict[str, str]) -> Tuple[Dict[str, str], int]:
        try:
            # fetch the usuario data
            usuario = Usuario.query.filter_by(login=data.get('login')).first()
            if usuario and usuario.check_senha(
                    data.get('senha')) and usuario.ativo == True:
                auth_token = Usuario.encode_auth_token(usuario.id,
                                                       usuario.nome,
                                                       usuario.login,
                                                       usuario.perfil.nome)
                if auth_token:
                    response_object = {
                        'status': 'Sucesso',
                        'message': 'Usuário logado com sucesso.',
                        'Authorization': auth_token
                    }
                    return response_object, 200
            else:
                response_object = {
                    'status': 'Falha',
                    'message': 'Login ou senha incorretos.'
                }
                return response_object, 401

        except Exception as e:
            print(e)
            response_object = {
                'status': 'Falha',
                'message': 'Tente novamente.'
            }
            return response_object, 500
示例#4
0
 def get_logged_in_user(new_request):
     # get the auth token
     auth_token = new_request.headers.get('Authorization')
     if auth_token:
         auth_jwt = auth_token.split()[1]
         resp = Usuario.decode_auth_token(auth_jwt)
         if not isinstance(resp, str):
             usuario = Usuario.query.filter_by(id=resp).first()
             response_object = {
                 'status': 'Sucesso',
                 'data': {
                     'nome': usuario.nome,
                     'uid': usuario.id,
                     'login': usuario.login,
                     'perfil': usuario.perfil.nome
                 }
             }
             return response_object, 200
         response_object = {'status': 'Falha', 'message': resp}
         return response_object, 401
     else:
         response_object = {
             'status': 'Falha',
             'message': 'Forneça um token de autenticação válido.'
         }
         return response_object, 401
示例#5
0
def generate_token(user: Usuario) -> Tuple[Dict[str, str], int]:
    try:        
        # generate the auth token
        auth_token = Usuario.encode_auth_token(usuario.id, usuario.nome, usuario.login, usurio.perfil.nome)
        response_object = {
            'status': 'Sucesso',
            'message': 'Registrado com sucesso.',
            'Authorization': auth_token.decode()
        }
        return response_object, 201
    except Exception as e:
        response_object = {
            'status': 'Falha',
            'message': 'Ocorreu um erro. Por favor tente novamente.'
        }
        return response_object, 401
示例#6
0
 def logout_user(data: str) -> Tuple[Dict[str, str], int]:
     if data:
         auth_token = data.split(" ")[1]
     else:
         auth_token = ''
     if auth_token:
         resp = Usuario.decode_auth_token(auth_token)
         if not isinstance(resp, str):
             # mark the token as blacklisted
             return save_token(token=auth_token)
         else:
             response_object = {'status': 'Falha', 'message': resp}
             return response_object, 401
     else:
         response_object = {
             'status': 'Falha',
             'message': 'Forneça um token de autenticação válido.'
         }
         return response_object, 403
示例#7
0
def guardar_nuevo_usuario(usuario):
    user = Usuario.query.filter_by(email=usuario['email']).first()
    if not user:
        clave = clave_aleatoria()
        if enviar_correo(usuario['email'], clave, usuario['rol_usuario_id']):
            nuevo_usuario = Usuario(email=usuario['email'],
                                    hora_registro=datetime.datetime.now(),
                                    rol_usuario=usuario['rol_usuario_id'],
                                    clave=clave,
                                    activo=True,
                                    entrenamiento=usuario['entrenamiento'])
            guardar_cambios(nuevo_usuario)
            mensaje = respuesta(True, 'Usuario registrado exitosamente')
            return mensaje, 201
        else:
            mensaje = respuesta(
                False,
                'Error al enviar correo. Pongase en contacto con soporte')
            return mensaje, 409
    else:
        mensaje = respuesta(False,
                            'El usuario ya existe, por favor inicie sesion')
        return mensaje, 409
示例#8
0
def update_password(usuario: Usuario, newpassword: str) -> None:
    if newpassword.__len__() >3:
        usuario.senha = newpassword
    db.session.commit()