Skip to content

Commit f144ce1

Browse files
committed
crud on orgazniation members
1 parent 33af874 commit f144ce1

File tree

5 files changed

+236
-221
lines changed

5 files changed

+236
-221
lines changed

packages/models-library/src/models_library/groups.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,18 @@ class GroupsByTypeTuple(NamedTuple):
5959
everyone: GroupInfoTuple | None
6060

6161

62-
class GroupUser(BaseModel):
62+
class GroupMember(BaseModel):
63+
# identifiers
6364
id: UserID
6465
name: IDStr
6566
primary_gid: GroupID
6667

68+
# private profile
6769
email: EmailStr | None
6870
first_name: str | None
6971
last_name: str | None
7072

73+
# group access
7174
access_rights: AccessRightsDict
7275

7376
model_config = ConfigDict(from_attributes=True)

services/web/server/src/simcore_service_webserver/groups/_groups_api.py

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
from aiohttp import web
2-
from models_library.groups import AccessRightsDict, Group, GroupsByTypeTuple, GroupUser
2+
from models_library.groups import (
3+
AccessRightsDict,
4+
Group,
5+
GroupMember,
6+
GroupsByTypeTuple,
7+
)
38
from models_library.users import GroupID, UserID
49

510
from . import _groups_db
@@ -125,5 +130,38 @@ async def delete_organization(
125130

126131
async def list_users_in_group(
127132
app: web.Application, user_id: UserID, gid: GroupID
128-
) -> list[GroupUser]:
133+
) -> list[GroupMember]:
129134
return await _groups_db.list_users_in_group(app, user_id=user_id, gid=gid)
135+
136+
137+
async def get_user_in_group(
138+
app: web.Application, user_id: UserID, gid: GroupID, the_user_id_in_group: int
139+
) -> GroupMember:
140+
141+
return await _groups_db.get_user_in_group(
142+
app, user_id=user_id, gid=gid, the_user_id_in_group=the_user_id_in_group
143+
)
144+
145+
146+
async def update_user_in_group(
147+
app: web.Application,
148+
user_id: UserID,
149+
gid: GroupID,
150+
the_user_id_in_group: int,
151+
access_rights: dict,
152+
) -> GroupMember:
153+
return await _groups_db.update_user_in_group(
154+
app,
155+
user_id=user_id,
156+
gid=gid,
157+
the_user_id_in_group=the_user_id_in_group,
158+
access_rights=access_rights,
159+
)
160+
161+
162+
async def delete_user_in_group(
163+
app: web.Application, user_id: UserID, gid: GroupID, the_user_id_in_group: int
164+
) -> None:
165+
return await _groups_db.delete_user_in_group(
166+
app, user_id=user_id, gid=gid, the_user_id_in_group=the_user_id_in_group
167+
)

0 commit comments

Comments
 (0)