Skip to content

Commit 8bf13a5

Browse files
fix duplication
1 parent fd90d72 commit 8bf13a5

File tree

1 file changed

+25
-44
lines changed
  • services/web/server/src/simcore_service_webserver/projects

1 file changed

+25
-44
lines changed

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

Lines changed: 25 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,27 @@ async def upsert_project_linked_product(
328328
.on_conflict_do_nothing()
329329
)
330330

331+
access_rights_subquery = (
332+
sa.select(
333+
project_to_groups.c.project_uuid,
334+
sa.func.jsonb_object_agg(
335+
project_to_groups.c.gid,
336+
sa.func.jsonb_build_object(
337+
"read",
338+
project_to_groups.c.read,
339+
"write",
340+
project_to_groups.c.write,
341+
"delete",
342+
project_to_groups.c.delete,
343+
),
344+
)
345+
.filter(
346+
project_to_groups.c.read # Filters out entries where "read" is False
347+
)
348+
.label("access_rights"),
349+
).group_by(project_to_groups.c.project_uuid)
350+
).subquery("access_rights_subquery")
351+
331352
async def list_projects( # pylint: disable=too-many-arguments
332353
self,
333354
*,
@@ -360,30 +381,9 @@ async def list_projects( # pylint: disable=too-many-arguments
360381

361382
async with self.engine.acquire() as conn:
362383

363-
access_rights_subquery = (
364-
sa.select(
365-
project_to_groups.c.project_uuid,
366-
sa.func.jsonb_object_agg(
367-
project_to_groups.c.gid,
368-
sa.func.jsonb_build_object(
369-
"read",
370-
project_to_groups.c.read,
371-
"write",
372-
project_to_groups.c.write,
373-
"delete",
374-
project_to_groups.c.delete,
375-
),
376-
)
377-
.filter(
378-
project_to_groups.c.read # Filters out entries where "read" is False
379-
)
380-
.label("access_rights"),
381-
).group_by(project_to_groups.c.project_uuid)
382-
).subquery("access_rights_subquery")
383-
384384
_join_query = (
385385
projects.join(projects_to_products, isouter=True)
386-
.join(access_rights_subquery, isouter=True)
386+
.join(self.access_rights_subquery, isouter=True)
387387
.join(
388388
projects_to_folders,
389389
(
@@ -404,7 +404,7 @@ async def list_projects( # pylint: disable=too-many-arguments
404404
for col in projects.columns
405405
if col.name not in ["access_rights"]
406406
],
407-
access_rights_subquery.c.access_rights,
407+
self.access_rights_subquery.c.access_rights,
408408
projects_to_products.c.product_name,
409409
projects_to_folders.c.folder_id,
410410
)
@@ -501,25 +501,6 @@ async def list_projects_full_search(
501501
async with self.engine.acquire() as conn:
502502
user_groups: list[RowProxy] = await self._list_user_groups(conn, user_id)
503503

504-
access_rights_subquery = (
505-
sa.select(
506-
project_to_groups.c.project_uuid,
507-
sa.func.jsonb_object_agg(
508-
project_to_groups.c.gid,
509-
sa.func.jsonb_build_object(
510-
"read",
511-
project_to_groups.c.read,
512-
"write",
513-
project_to_groups.c.write,
514-
"delete",
515-
project_to_groups.c.delete,
516-
),
517-
)
518-
.filter(project_to_groups.c.read)
519-
.label("access_rights"),
520-
).group_by(project_to_groups.c.project_uuid)
521-
).subquery("access_rights_subquery")
522-
523504
workspace_access_rights_subquery = (
524505
sa.select(
525506
workspaces_access_rights.c.workspace_id,
@@ -546,12 +527,12 @@ async def list_projects_full_search(
546527
for col in projects.columns
547528
if col.name not in ["access_rights"]
548529
],
549-
access_rights_subquery.c.access_rights,
530+
self.access_rights_subquery.c.access_rights,
550531
projects_to_products.c.product_name,
551532
projects_to_folders.c.folder_id,
552533
)
553534
.select_from(
554-
projects.join(access_rights_subquery, isouter=True)
535+
projects.join(self.access_rights_subquery, isouter=True)
555536
.join(projects_to_products)
556537
.join(
557538
projects_to_folders,

0 commit comments

Comments
 (0)