Ejemplo n.º 1
0
def route_users_put(
    *,
    username,
    password=None,
    admin_channels=None,
    admin_roles=None,
    disabled=None,
    email=None,
    full_name=None,
):
    current_user = get_current_user()

    if not current_user:
        abort(400, "Could not authenticate user with provided token")
    elif not check_if_user_is_active(current_user):
        abort(400, "Inactive user")
    elif not check_if_user_is_superuser(current_user):
        abort(400, "The user doesn't have enough privileges")
    bucket = get_default_bucket()
    user = get_user(bucket, username)

    if not user:
        return abort(404, f"The user with this username does not exist in the system.")
    user_in = UserInUpdate(
        username=username,
        password=password,
        admin_channels=admin_channels,
        admin_roles=admin_roles,
        disabled=disabled,
        email=email,
        full_name=full_name,
    )
    user = update_user(bucket, user_in)
    return user
Ejemplo n.º 2
0
def route_users_me_put(*, password=None, full_name=None, email=None):
    current_user = get_current_user()

    if not current_user:
        abort(400, "Could not authenticate user with provided token")
    elif not check_if_user_is_active(current_user):
        abort(400, "Inactive user")
    user_in = UserInUpdate(jsonable_encoder(current_user))
    if password is not None:
        user_in.password = password
    if full_name is not None:
        user_in.full_name = full_name
    if email is not None:
        user_in.email = email
    bucket = get_default_bucket()
    user = update_user(bucket, user_in)
    return user
Ejemplo n.º 3
0
async def update_current_user(
        user: UserInUpdate = Body(..., embed=True),
        current_user: User = Depends(get_current_user_authorizer()),
        db: DataBase = Depends(get_database),
):
    async with db.pool.acquire() as conn:
        if user.username == current_user.username:
            user.username = None
        if user.email == current_user.email:
            user.email = None

        await check_free_username_and_email(conn, user.username, user.email)

        async with conn.transaction():
            dbuser = await update_user(conn, current_user.username, user)
            return UserInResponse(
                user=User(**dbuser.dict(), token=current_user.token))
Ejemplo n.º 4
0
def update_user_me(
    *,
    password: str = Body(None),
    full_name: str = Body(None),
    email: EmailStr = Body(None),
    current_user: UserInDB = Depends(get_current_active_user),
):
    """
    Update own user
    """
    user_in = UserInUpdate(**current_user.dict())
    if password is not None:
        user_in.password = password
    if full_name is not None:
        user_in.full_name = full_name
    if email is not None:
        user_in.email = email
    bucket = get_default_bucket()
    user = crud.user.update(bucket, username=current_user.username, user_in=user_in)
    return user
Ejemplo n.º 5
0
def update_user_me(
        *,
        db: Session = Depends(get_db),
        password: str = Body(None),
        full_name: str = Body(None),
        email: EmailStr = Body(None),
        current_user: DBUser = Depends(get_current_active_user),
):
    """
    Update own user
    """
    current_user_data = jsonable_encoder(current_user)
    user_in = UserInUpdate(**current_user_data)
    if password is not None:
        user_in.password = password
    if full_name is not None:
        user_in.full_name = full_name
    if email is not None:
        user_in.email = email
    user = crud.user.update(db, user=current_user, user_in=user_in)
    return user
Ejemplo n.º 6
0
def route_users_me_put(
    *,
    password: str = Body(None),
    full_name: str = Body(None),
    email: EmailStr = Body(None),
    current_user: UserInDB = Depends(get_current_user),
):
    """
    Update own user
    """
    if not check_if_user_is_active(current_user):
        raise HTTPException(status_code=400, detail="Inactive user")
    user_in = UserInUpdate(**current_user.dict())
    if password is not None:
        user_in.password = password
    if full_name is not None:
        user_in.full_name = full_name
    if email is not None:
        user_in.email = email
    bucket = get_default_bucket()
    user = update_user(bucket, user_in)
    return user
def route_users_me_put(
    *,
    password=None,
    human_name=None,
    email=None,
):
    current_user: UserStored = get_current_user()

    if not current_user:
        abort(400, "Could not authenticate user with provided token")
    elif not check_if_user_is_active(current_user):
        abort(400, "Inactive user")
    user_in = UserInUpdate(**current_user.json_dict())
    if password is not None:
        user_in.password = password
    if human_name is not None:
        user_in.human_name = human_name
    if email is not None:
        user_in.email = email

    user = update_user(bucket, user_in)
    return user
Ejemplo n.º 8
0
def route_reset_password(token, new_password):
    name = verify_password_reset_token(token)
    if not name:
        abort(400, "Invalid token")
    bucket = get_default_bucket()
    user = get_user(bucket, name)
    if not user:
        return abort(
            404, f"The user with this username does not exist in the system.")
    elif not check_if_user_is_active(user):
        abort(400, "Inactive user")
    user_in = UserInUpdate(name=name, password=new_password)
    user = update_user(bucket, user_in)
    return {"msg": "Password updated successfully"}
Ejemplo n.º 9
0
def reset_password(token: str, new_password: str):
    """
    Reset password
    """
    username = verify_password_reset_token(token)
    if not username:
        raise HTTPException(status_code=400, detail="Invalid token")
    bucket = get_default_bucket()
    user = crud.user.get(bucket, username=username)
    if not user:
        raise HTTPException(
            status_code=404,
            detail="The user with this username does not exist in the system.",
        )
    elif not crud.user.is_active(user):
        raise HTTPException(status_code=400, detail="Inactive user")
    user_in = UserInUpdate(name=username, password=new_password)
    user = crud.user.update(bucket, username=username, user_in=user_in)
    return {"msg": "Password updated successfully"}
Ejemplo n.º 10
0
def update_user(bucket: Bucket, user_in: UserInUpdate):
    user = update_user_in_db(bucket, user_in)
    user_in_sync = UserSyncIn(**user_in.json_dict())
    assert update_sync_gateway_user(user_in_sync)
    return user