diff --git a/barker/barker/routers/user.py b/barker/barker/routers/user.py index 7442e6f..aa347f7 100644 --- a/barker/barker/routers/user.py +++ b/barker/barker/routers/user.py @@ -42,31 +42,27 @@ def save( ) -@router.get("/me", response_model=schemas.User) +@router.get("/me", response_model=schemas.UserMe) def show_me( user: UserToken = Depends(get_user), -) -> schemas.User: +) -> schemas.UserMe: with SessionFuture() as db: item = db.execute(select(User).where(User.id == user.id_)).scalar_one() - return user_info(item, db, user) + return user_me(item) -@router.put("/me", response_model=schemas.User) +@router.put("/me", response_model=schemas.UserMe) def update_me( data: schemas.UserIn, user: UserToken = Depends(get_user), -) -> schemas.User: +) -> schemas.UserMe: try: with SessionFuture() as db: item: User = db.execute(select(User).where(User.id == user.id_)).scalar_one() - if "users" in user.permissions: - item.name = data.name - item.locked_out = data.locked_out - add_roles(item, data.roles, db) if data.password and item.password != data.password: item.password = data.password db.commit() - return user_info(item, db, user) + return user_me(item) except SQLAlchemyError as e: raise HTTPException( status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, @@ -184,6 +180,16 @@ def user_info(item: User, db: Session, user: UserToken) -> schemas.User: ) +def user_me(item: User) -> schemas.UserMe: + return schemas.UserMe( + id="me", + name=item.name, + password="", + lockedOut=item.locked_out, + roles=[], + ) + + def blank_user_info(db: Session) -> schemas.UserIn: return schemas.UserIn( name="", diff --git a/barker/barker/schemas/user.py b/barker/barker/schemas/user.py index f39036d..28afb6d 100644 --- a/barker/barker/schemas/user.py +++ b/barker/barker/schemas/user.py @@ -27,6 +27,14 @@ class User(UserIn): alias_generator = to_camel +class UserMe(UserIn): + id_: str + + class Config: + anystr_strip_whitespace = True + alias_generator = to_camel + + class UserLink(BaseModel): id_: Optional[uuid.UUID] name: Optional[str] diff --git a/bookie/src/app/home/home.component.html b/bookie/src/app/home/home.component.html index 45cb7e0..6dfc175 100644 --- a/bookie/src/app/home/home.component.html +++ b/bookie/src/app/home/home.component.html @@ -232,6 +232,15 @@ >

Users

+ +

Change Password

+
{ this.toaster.show('Success', ''); - this.router.navigateByUrl('/users'); + console.log(this.item.id); + if ((this.item.id as string) === 'me') { + this.router.navigateByUrl('/'); + } else { + this.router.navigateByUrl('/users'); + } }, (error) => { this.toaster.show('Error', error);