diff --git a/backend/btrixcloud/users.py b/backend/btrixcloud/users.py index baac50ba55..07de717fe1 100644 --- a/backend/btrixcloud/users.py +++ b/backend/btrixcloud/users.py @@ -407,6 +407,27 @@ async def refresh_jwt(response: Response, user=Depends(current_active_user)): users_router = fastapi_users.get_users_router() + @users_router.get("/me-with-orgs", tags=["users"]) + async def me_with_org_info(user: User = Depends(current_active_user)): + """/users/me with orgs user belongs to.""" + user_info = { + "id": user.id, + "email": user.email, + "name": user.name, + "orgs": [], + "is_active": user.is_active, + "is_superuser": user.is_superuser, + "is_verified": user.is_verified, + } + user_orgs = await user_manager.org_ops.get_orgs_for_user(user) + if user_orgs: + user_info["orgs"] = [ + {"id": org.id, "name": org.name, "default": org.default} + for org in user_orgs + ] + print(f"user info with orgs: {user_info}", flush=True) + return user_info + @users_router.post("/invite", tags=["invites"]) async def invite_user( invite: InviteRequest, diff --git a/frontend/src/index.ts b/frontend/src/index.ts index 4b3614f05f..3b58b5c151 100644 --- a/frontend/src/index.ts +++ b/frontend/src/index.ts @@ -856,7 +856,7 @@ export class App extends LiteElement { } getUserInfo(): Promise { - return this.apiFetch("/users/me", this.authService.authState!); + return this.apiFetch("/users/me-with-orgs", this.authService.authState!); } private clearUser() {