diff --git a/api/chalicelib/core/users.py b/api/chalicelib/core/users.py index 1461c6e14..b4ac0f869 100644 --- a/api/chalicelib/core/users.py +++ b/api/chalicelib/core/users.py @@ -315,6 +315,11 @@ def edit(user_id_to_update, tenant_id, changes, editor_id): return {"data": user} +def edit_appearance(user_id, tenant_id, changes): + updated_user = update(tenant_id=tenant_id, user_id=user_id, changes=changes) + return {"data": updated_user} + + def get_by_email_only(email): with pg_client.PostgresClient() as cur: cur.execute( diff --git a/api/routers/core.py b/api/routers/core.py index cc2842d64..90978e948 100644 --- a/api/routers/core.py +++ b/api/routers/core.py @@ -1069,6 +1069,13 @@ def edit_account(data: schemas.EditUserSchema = Body(...), editor_id=context.user_id) +@app.post('/account/appearance', tags=["account"]) +@app.put('/account/appearance', tags=["account"]) +def edit_account_appearance(data: schemas.EditUserAppearanceSchema = Body(...), + context: schemas.CurrentContext = Depends(OR_context)): + return users.edit_appearance(tenant_id=context.tenant_id, user_id=context.user_id, changes=data.dict()) + + @app.post('/account/password', tags=["account"]) @app.put('/account/password', tags=["account"]) def change_client_password(data: schemas.EditUserPasswordSchema = Body(...), diff --git a/api/schemas.py b/api/schemas.py index 963c04dad..14307b2ff 100644 --- a/api/schemas.py +++ b/api/schemas.py @@ -36,6 +36,10 @@ class EditUserSchema(BaseModel): appearance: Optional[dict] = Field({}) +class EditUserAppearanceSchema(BaseModel): + appearance: dict = Field(...) + + class ForgetPasswordPayloadSchema(_Grecaptcha): email: str = Field(...) diff --git a/ee/api/chalicelib/core/users.py b/ee/api/chalicelib/core/users.py index ce5bcca5d..2d4effc0e 100644 --- a/ee/api/chalicelib/core/users.py +++ b/ee/api/chalicelib/core/users.py @@ -340,6 +340,11 @@ def edit(user_id_to_update, tenant_id, changes, editor_id): return {"data": user} +def edit_appearance(user_id, tenant_id, changes): + updated_user = update(tenant_id=tenant_id, user_id=user_id, changes=changes) + return {"data": updated_user} + + def get_by_email_only(email): with pg_client.PostgresClient() as cur: cur.execute(