Skip to content

Commit b5f3abf

Browse files
user can remove itself from project/workspace
1 parent 1327f2e commit b5f3abf

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,15 @@ async def delete_project_group(
139139
group_id: GroupID,
140140
product_name: ProductName,
141141
) -> None:
142-
await check_user_project_permission(
143-
app,
144-
project_id=project_id,
145-
user_id=user_id,
146-
product_name=product_name,
147-
permission="delete",
148-
)
142+
user = await users_api.get_user(app, user_id=user_id)
143+
if user["primary_gid"] != group_id:
144+
await check_user_project_permission(
145+
app,
146+
project_id=project_id,
147+
user_id=user_id,
148+
product_name=product_name,
149+
permission="delete",
150+
)
149151

150152
project_db: ProjectDBAPI = app[APP_PROJECT_DBAPI]
151153
project = await project_db.get_project_db(project_id)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,10 +159,11 @@ async def delete_workspace_group(
159159
group_id: GroupID,
160160
product_name: ProductName,
161161
) -> None:
162+
user = await users_api.get_user(app, user_id=user_id)
162163
workspace: UserWorkspaceAccessRightsDB = await workspaces_db.get_workspace_for_user(
163164
app=app, user_id=user_id, workspace_id=workspace_id, product_name=product_name
164165
)
165-
if workspace.my_access_rights.delete is False:
166+
if user["primary_gid"] != group_id and workspace.my_access_rights.delete is False:
166167
raise WorkspaceAccessForbiddenError(
167168
reason=f"User does not have delete access to workspace {workspace_id}"
168169
)

0 commit comments

Comments
 (0)