Skip to content

Commit 19bea51

Browse files
feat: add readFunctions when getting permissions
1 parent b026b90 commit 19bea51

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

packages/models-library/src/models_library/api_schemas_webserver/users.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,4 +407,5 @@ def from_domain_model(cls, permission: UserPermission) -> Self:
407407

408408

409409
class MyFunctionPermissionsGet(OutputSchema):
410+
read_functions: bool
410411
write_functions: bool

services/web/server/src/simcore_service_webserver/functions/_controller/_functions_rest.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,5 +125,8 @@ async def list_user_functions_permissions(request: web.Request) -> web.Response:
125125
assert function_permissions.user_id == req_ctx.user_id # nosec
126126

127127
return envelope_json_response(
128-
MyFunctionPermissionsGet(write_functions=function_permissions.write_functions)
128+
MyFunctionPermissionsGet(
129+
read_functions=function_permissions.read_functions,
130+
write_functions=function_permissions.write_functions,
131+
)
129132
)

services/web/server/tests/unit/with_dbs/04/functions_rpc/conftest.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ async def logged_user_function_api_access_rights(
200200
asyncpg_engine: AsyncEngine,
201201
logged_user: UserInfoDict,
202202
*,
203+
expected_read_functions: bool,
203204
expected_write_functions: bool,
204205
) -> AsyncIterator[dict[str, Any]]:
205206
cm = insert_and_get_row_lifespan(
@@ -208,7 +209,7 @@ async def logged_user_function_api_access_rights(
208209
values={
209210
"group_id": logged_user["primary_gid"],
210211
"product_name": FRONTEND_APP_DEFAULT,
211-
"read_functions": True,
212+
"read_functions": expected_read_functions,
212213
"write_functions": expected_write_functions,
213214
"execute_functions": True,
214215
"read_function_jobs": True,

services/web/server/tests/unit/with_dbs/04/functions_rpc/test_functions_controller_rest.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,26 @@ async def test_register_get_delete_function(
115115

116116

117117
@pytest.mark.parametrize("user_role", [UserRole.USER])
118-
@pytest.mark.parametrize("expected_write_functions", [True, False])
118+
@pytest.mark.parametrize(
119+
"expected_read_functions,expected_write_functions",
120+
[
121+
(True, True),
122+
(True, False),
123+
(False, True), # Weird, but allowed for testing purposes
124+
(False, False),
125+
],
126+
)
119127
async def test_list_user_functions_permissions(
120128
client: TestClient,
121129
logged_user: UserInfoDict,
130+
expected_read_functions: bool,
122131
expected_write_functions: bool,
123132
logged_user_function_api_access_rights: dict[str, Any],
124133
):
134+
assert (
135+
logged_user_function_api_access_rights["read_functions"]
136+
== expected_read_functions
137+
)
125138
assert (
126139
logged_user_function_api_access_rights["write_functions"]
127140
== expected_write_functions
@@ -133,4 +146,5 @@ async def test_list_user_functions_permissions(
133146

134147
assert not error
135148
function_permissions = MyFunctionPermissionsGet.model_validate(data)
149+
assert function_permissions.read_functions == expected_read_functions
136150
assert function_permissions.write_functions == expected_write_functions

0 commit comments

Comments
 (0)