示例#1
0
async def delete_user(user: str):
    user_exists = get_user(user)
    if (user_exists != None):
        eliminar_usuario(user)
        return {"respuesta": "El usuario y sus registros fueron eliminados"}
    else:
        return {"respuesta": "El usuario no existe"}
示例#2
0
def authenticate_user(username: str, password: str):
    user = get_user(username)
    if not user:
        return False
    if not verify_password(password, user.hashed_password):
        return False
    return user
示例#3
0
async def delete_user(user: str):
    usuario = get_user(user)
    if (usuario == None):
        return {"respuesta": "Lo sentimos, el nombre de usuario no existe"}
    else:
        #Borrar usuario
        delete_user_indb(usuario)
        return {"respuesta": "El usuario se eliminó correctamente"}
示例#4
0
async def autentication(datos_entrada: UserIn):
    usuario_en_db = get_user(datos_entrada.user)

    if (usuario_en_db == None):
        return {"respuesta": False}
    if (usuario_en_db.password == datos_entrada.password):
        return {"respuesta": True}
    else:
        return {"respuesta": False}
示例#5
0
async def create_user(datosRegistro: CreateUserIn):
    user_exists = get_user(datosRegistro.name)
    if (user_exists != None):
        return {
            "respuesta": "Lo sentimos, el nombre de usuario ya está en uso"
        }
    else:
        datosRegistro = db_user(**datosRegistro.dict(), total=0)
        create_user_indb(datosRegistro)
        return {
            "respuesta":
            "El usuario se registró correctamente. Por favor ingresa a continuación con tu nuevo usuario y contraseña"
        }
示例#6
0
async def reg_find(user: str):

    user_exists = get_user(user)

    if user_exists == None:
        raise HTTPException(status_code=404,
                            detail="El usuario no está registrado")

    match_list = find_register(user_exists.user)

    if len(match_list) > 0:
        return match_list
    else:
        return {"mensaje": "El usuario aún no tiene registros"}
示例#7
0
async def delete_reg(datos: deleteRegisterIn):
    bandera = check_register(datos.user, datos.id_register)
    user_exists = get_user(datos.user)
    registro_aux = find_one_register(datos.id_register)

    if (bandera == True):
        if registro_aux.category == "ingreso":
            user_exists.total = user_exists.total - registro_aux.value
        elif registro_aux.category == "egreso":
            user_exists.total = user_exists.total + registro_aux.value

        update_user(user_exists)

        delete_register(datos.id_register)
        return {"respuesta": "Registo eliminado con éxito"}
    else:
        return {
            "respuesta":
            "el usuario " + datos.user + " no tiene registros con id " +
            str(datos.id_register)
        }
示例#8
0
async def reg_create(register: RegisterIn):

    user_exist = get_user(register.user)

    if user_exist == None:
        raise HTTPException(status_code=404,
                            detail="El usuario no está registrado")

    if register.category == "ingreso":
        user_exist.total = user_exist.total + register.value
    elif register.category == "egreso":
        user_exist.total = user_exist.total - register.value
    else:
        raise HTTPException(status_code=400,
                            detail="Tipo de registro no válido")

    update_user(user_exist)

    new_register = bd_register(**register.dict())
    new_register = save_register(new_register)
    register_to_show = RegisterOut(**new_register.dict(),
                                   total=user_exist.total)

    return register_to_show, {"mensaje": "¡Registro exitoso!"}
示例#9
0
async def authorize_user(security_scopes: SecurityScopes,
                         token: str = Depends(oauth2_scheme)):
    if security_scopes.scopes:
        authenticate_value = f'Bearer scope="{security_scopes.scope_str}"'
    else:
        authenticate_value = f"Bearer"
    credentials_exception = HTTPException(
        status_code=HTTP_401_UNAUTHORIZED,
        detail="Could not validate credentials",
        headers={"WWW-Authenticate": authenticate_value},
    )
    try:
        payload = jwt.decode(token,
                             config['AUTH']['secret_key'],
                             algorithms=[config['AUTH']['algorithm']])
        username: str = payload.get("sub")
        if username is None:
            raise credentials_exception

        token_scopes = payload.get("scopes", [])
        token_data = TokenData(scopes=token_scopes, username=username)

        user = get_user(username=token_data.username)
        if user is None:
            raise credentials_exception
    except (PyJWTError, ValidationError):
        raise credentials_exception

    for scope in security_scopes.scopes:
        if scope not in token_data.scopes:
            raise HTTPException(
                status_code=HTTP_401_UNAUTHORIZED,
                detail="Not enough permissions",
                headers={"WWW-Authenticate": authenticate_value},
            )
    return token_data
示例#10
0
async def get_total(user: str):
    usuario = get_user(user)
    usuario = UserOut(**usuario.dict())
    return usuario
示例#11
0
async def get_current_user(token_data: TokenData = Depends(authorize_user)):
    user = users_db.get_user(username=token_data.username)
    return user