feat/enh: user status

This commit is contained in:
Timothy Jaeryang Baek
2025-12-01 13:18:59 -05:00
parent dba86bc980
commit 51621ba91a
10 changed files with 422 additions and 8 deletions
+41 -3
View File
@@ -21,6 +21,7 @@ from open_webui.models.users import (
UserInfoListResponse,
UserInfoListResponse,
UserRoleUpdateForm,
UserStatus,
Users,
UserSettings,
UserUpdateForm,
@@ -299,6 +300,43 @@ async def update_user_settings_by_session_user(
)
############################
# GetUserStatusBySessionUser
############################
@router.get("/user/status")
async def get_user_status_by_session_user(user=Depends(get_verified_user)):
user = Users.get_user_by_id(user.id)
if user:
return user
else:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=ERROR_MESSAGES.USER_NOT_FOUND,
)
############################
# UpdateUserStatusBySessionUser
############################
@router.post("/user/status/update")
async def update_user_status_by_session_user(
form_data: UserStatus, user=Depends(get_verified_user)
):
user = Users.get_user_by_id(user.id)
if user:
user = Users.update_user_status_by_id(user.id, form_data)
return user
else:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=ERROR_MESSAGES.USER_NOT_FOUND,
)
############################
# GetUserInfoBySessionUser
############################
@@ -350,9 +388,10 @@ async def update_user_info_by_session_user(
############################
class UserActiveResponse(BaseModel):
class UserActiveResponse(UserStatus):
name: str
profile_image_url: Optional[str] = None
is_active: bool
model_config = ConfigDict(extra="allow")
@@ -377,8 +416,7 @@ async def get_user_by_id(user_id: str, user=Depends(get_verified_user)):
if user:
return UserActiveResponse(
**{
"id": user.id,
"name": user.name,
**user.model_dump(),
"is_active": Users.is_user_active(user_id),
}
)