Skip to content

Commit 01868e8

Browse files
committed
enh: group members endpoint
1 parent e301d19 commit 01868e8

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

backend/open_webui/models/users.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,16 @@ def get_users(
452452
"total": total,
453453
}
454454

455+
def get_users_by_group_id(self, group_id: str) -> list[UserModel]:
456+
with get_db() as db:
457+
users = (
458+
db.query(User)
459+
.join(GroupMember, User.id == GroupMember.user_id)
460+
.filter(GroupMember.group_id == group_id)
461+
.all()
462+
)
463+
return [UserModel.model_validate(user) for user in users]
464+
455465
def get_users_by_user_ids(self, user_ids: list[str]) -> list[UserStatusModel]:
456466
with get_db() as db:
457467
users = db.query(User).filter(User.id.in_(user_ids)).all()

backend/open_webui/routers/groups.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import Optional
44
import logging
55

6-
from open_webui.models.users import Users
6+
from open_webui.models.users import Users, UserInfoResponse
77
from open_webui.models.groups import (
88
Groups,
99
GroupForm,
@@ -118,6 +118,24 @@ async def export_group_by_id(id: str, user=Depends(get_admin_user)):
118118
)
119119

120120

121+
############################
122+
# GetUsersInGroupById
123+
############################
124+
125+
126+
@router.post("/id/{id}/users", response_model=list[UserInfoResponse])
127+
async def get_users_in_group(id: str, user=Depends(get_admin_user)):
128+
try:
129+
users = Users.get_users_by_group_id(id)
130+
return users
131+
except Exception as e:
132+
log.exception(f"Error adding users to group {id}: {e}")
133+
raise HTTPException(
134+
status_code=status.HTTP_400_BAD_REQUEST,
135+
detail=ERROR_MESSAGES.DEFAULT(e),
136+
)
137+
138+
121139
############################
122140
# UpdateGroupById
123141
############################

0 commit comments

Comments
 (0)