Skip to content

Commit 84624e6

Browse files
committed
fix sonar
1 parent edc336a commit 84624e6

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,25 @@ async def move_project_into_folder(
4343
)
4444
workspace_is_private = False
4545

46+
private_workspace_user_id_or_none: UserID | None = (
47+
user_id if workspace_is_private else None
48+
)
49+
4650
if folder_id:
4751
# Check user has access to folder
4852
await folders_folders_repository.get_for_user_or_workspace(
4953
app,
5054
folder_id=folder_id,
5155
product_name=product_name,
52-
user_id=user_id if workspace_is_private else None,
56+
user_id=private_workspace_user_id_or_none,
5357
workspace_id=project_db.workspace_id,
5458
)
5559

5660
# Move project to folder
5761
prj_to_folder_db = await _folders_repository.get_project_to_folder(
5862
app,
5963
project_id=project_id,
60-
private_workspace_user_id_or_none=user_id if workspace_is_private else None,
64+
private_workspace_user_id_or_none=private_workspace_user_id_or_none,
6165
)
6266
if prj_to_folder_db is None:
6367
if folder_id is None:
@@ -66,23 +70,21 @@ async def move_project_into_folder(
6670
app,
6771
project_id=project_id,
6872
folder_id=folder_id,
69-
private_workspace_user_id_or_none=user_id if workspace_is_private else None,
73+
private_workspace_user_id_or_none=private_workspace_user_id_or_none,
7074
)
7175
else:
7276
# Delete old
7377
await _folders_repository.delete_project_to_folder(
7478
app,
7579
project_id=project_id,
7680
folder_id=prj_to_folder_db.folder_id,
77-
private_workspace_user_id_or_none=user_id if workspace_is_private else None,
81+
private_workspace_user_id_or_none=private_workspace_user_id_or_none,
7882
)
7983
# Create new
8084
if folder_id is not None:
8185
await _folders_repository.insert_project_to_folder(
8286
app,
8387
project_id=project_id,
8488
folder_id=folder_id,
85-
private_workspace_user_id_or_none=(
86-
user_id if workspace_is_private else None
87-
),
89+
private_workspace_user_id_or_none=private_workspace_user_id_or_none,
8890
)

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,10 @@ async def get_project_for_user(
210210
# adds state if it is not a template
211211
if include_state:
212212
project = await add_project_states_for_user(
213-
user_id, project, project_type is ProjectType.TEMPLATE, app
213+
user_id=user_id,
214+
project=project,
215+
is_template=project_type is ProjectType.TEMPLATE,
216+
app=app,
214217
)
215218

216219
# adds `trashed_by_primary_gid`
@@ -1550,7 +1553,6 @@ async def get_project_states_for_user(
15501553
user_id: int, project_uuid: str, app: web.Application
15511554
) -> ProjectState:
15521555
# for templates: the project is never locked and never opened. also the running state is always unknown
1553-
lock_state = ProjectLocked(value=False, status=ProjectStatus.CLOSED)
15541556
running_state = RunningState.UNKNOWN
15551557
lock_state, computation_task = await logged_gather(
15561558
_get_project_lock_state(user_id, project_uuid, app),
@@ -1566,6 +1568,7 @@ async def get_project_states_for_user(
15661568

15671569

15681570
async def add_project_states_for_user(
1571+
*,
15691572
user_id: int,
15701573
project: ProjectDict,
15711574
is_template: bool,

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,13 @@ async def _can_update_node_inputs(context):
3434

3535
diffs = jsondiff.diff(current_project, updated_project)
3636

37-
# TODO: depends on schema. Shall change if schema changes!?
3837
if "workbench" in diffs:
3938
try:
4039
for node in diffs["workbench"]:
4140
# can ONLY modify `inputs` fields set as ReadAndWrite
4241
access = current_project["workbench"][node]["inputAccess"]
4342
inputs = diffs["workbench"][node]["inputs"]
44-
for key in inputs:
45-
if access.get(key) != "ReadAndWrite":
46-
return False
47-
return True
43+
return all(access.get(key) == "ReadAndWrite" for key in inputs)
4844
except KeyError:
4945
pass
5046
return False
@@ -58,7 +54,6 @@ def setup_projects_access(app: web.Application):
5854
"""
5955
hrba = get_access_model(app)
6056

61-
# TODO: add here also named permissions, i.e. all project.* operations
6257
hrba.roles[UserRole.GUEST].check[
6358
"project.workbench.node.inputs.update"
6459
] = _can_update_node_inputs

0 commit comments

Comments
 (0)