Skip to content

Commit ee73423

Browse files
committed
cleanup
1 parent 9bba4bd commit ee73423

File tree

2 files changed

+38
-27
lines changed

2 files changed

+38
-27
lines changed

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

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -349,27 +349,6 @@ async def upsert_project_linked_product(
349349
.on_conflict_do_nothing()
350350
)
351351

352-
_access_rights_subquery = (
353-
sa.select(
354-
project_to_groups.c.project_uuid,
355-
sa.func.jsonb_object_agg(
356-
project_to_groups.c.gid,
357-
sa.func.jsonb_build_object(
358-
"read",
359-
project_to_groups.c.read,
360-
"write",
361-
project_to_groups.c.write,
362-
"delete",
363-
project_to_groups.c.delete,
364-
),
365-
)
366-
.filter(
367-
project_to_groups.c.read # Filters out entries where "read" is False
368-
)
369-
.label("access_rights"),
370-
).group_by(project_to_groups.c.project_uuid)
371-
).subquery("access_rights_subquery")
372-
373352
def _create_private_workspace_query(
374353
self,
375354
*,
@@ -387,11 +366,32 @@ def _create_private_workspace_query(
387366
WorkspaceScope.ALL,
388367
)
389368

369+
access_rights_subquery = (
370+
sa.select(
371+
project_to_groups.c.project_uuid,
372+
sa.func.jsonb_object_agg(
373+
project_to_groups.c.gid,
374+
sa.func.jsonb_build_object(
375+
"read",
376+
project_to_groups.c.read,
377+
"write",
378+
project_to_groups.c.write,
379+
"delete",
380+
project_to_groups.c.delete,
381+
),
382+
)
383+
.filter(
384+
project_to_groups.c.read # Filters out entries where "read" is False
385+
)
386+
.label("access_rights"),
387+
).group_by(project_to_groups.c.project_uuid)
388+
).subquery("access_rights_subquery")
389+
390390
private_workspace_query = (
391391
sa.select(
392392
*PROJECT_DB_COLS,
393393
projects.c.workbench,
394-
self._access_rights_subquery.c.access_rights,
394+
access_rights_subquery.c.access_rights,
395395
projects_to_products.c.product_name,
396396
projects_to_folders.c.folder_id,
397397
sa.func.coalesce(
@@ -400,7 +400,7 @@ def _create_private_workspace_query(
400400
).label("tags"),
401401
)
402402
.select_from(
403-
projects.join(self._access_rights_subquery, isouter=True)
403+
projects.join(access_rights_subquery, isouter=True)
404404
.join(projects_to_products)
405405
.join(
406406
projects_to_folders,
@@ -423,6 +423,10 @@ def _create_private_workspace_query(
423423
& (projects_to_products.c.product_name == product_name)
424424
)
425425
)
426+
assert ( # nosec
427+
access_rights_subquery.description == "access_rights_subquery"
428+
)
429+
426430
if is_search_by_multi_columns:
427431
private_workspace_query = private_workspace_query.join(
428432
users, users.c.id == projects.c.prj_owner, isouter=True
@@ -441,10 +445,11 @@ def _create_shared_workspace_query(
441445
) -> sql.Select | None:
442446

443447
if workspace_query.workspace_scope is not WorkspaceScope.PRIVATE:
444-
assert workspace_query.workspace_scope in (
448+
assert workspace_query.workspace_scope in ( # nosec
445449
WorkspaceScope.SHARED,
446450
WorkspaceScope.ALL,
447451
)
452+
448453
workspace_access_rights_subquery = (
449454
sa.select(
450455
workspaces_access_rights.c.workspace_id,
@@ -502,6 +507,11 @@ def _create_shared_workspace_query(
502507
& (projects_to_products.c.product_name == product_name)
503508
)
504509
)
510+
assert ( # nosec
511+
workspace_access_rights_subquery.description
512+
== "workspace_access_rights_subquery"
513+
)
514+
505515
if workspace_query.workspace_scope == WorkspaceScope.ALL:
506516
shared_workspace_query = shared_workspace_query.where(
507517
projects.c.workspace_id.is_not(None) # <-- All shared workspaces

services/web/server/tests/unit/with_dbs/04/workspaces/test_workspaces__folders_and_projects_crud.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,7 @@ async def test_workspaces_delete_folders(
393393

394394
@pytest.mark.parametrize("user_role,expected", [(UserRole.USER, status.HTTP_200_OK)])
395395
async def test_listing_folders_and_projects_in_workspace__multiple_workspaces_created(
396+
request: pytest.FixtureRequest,
396397
client: TestClient,
397398
logged_user: UserInfoDict,
398399
user_project: ProjectDict,
@@ -409,7 +410,7 @@ async def test_listing_folders_and_projects_in_workspace__multiple_workspaces_cr
409410
f"{url}",
410411
json={
411412
"name": "My first workspace",
412-
"description": "Custom description",
413+
"description": f"workspace 1 at {request.node.name}",
413414
"thumbnail": None,
414415
},
415416
)
@@ -441,8 +442,8 @@ async def test_listing_folders_and_projects_in_workspace__multiple_workspaces_cr
441442
resp = await client.post(
442443
f"{url}",
443444
json={
444-
"name": "My first workspace",
445-
"description": "Custom description",
445+
"name": "My second workspace",
446+
"description": f"workspace 2 at {request.node.name}",
446447
"thumbnail": None,
447448
},
448449
)

0 commit comments

Comments
 (0)