@@ -15,6 +15,7 @@ import com.cosmotech.api.rbac.ROLE_ADMIN
15
15
import com.cosmotech.api.rbac.ROLE_EDITOR
16
16
import com.cosmotech.api.rbac.ROLE_NONE
17
17
import com.cosmotech.api.rbac.ROLE_USER
18
+ import com.cosmotech.api.rbac.ROLE_VALIDATOR
18
19
import com.cosmotech.api.rbac.ROLE_VIEWER
19
20
import com.cosmotech.api.security.ROLE_ORGANIZATION_USER
20
21
import com.cosmotech.api.security.ROLE_PLATFORM_ADMIN
@@ -1025,6 +1026,47 @@ class RunnerServiceIntegrationTest : CsmRedisTestBase() {
1025
1026
}
1026
1027
}
1027
1028
1029
+ @Test
1030
+ fun `As a validator, I can see whole security property for getRunner` () {
1031
+ every { getCurrentAccountIdentifier(any()) } returns defaultName
1032
+ runner = makeRunnerCreateRequest(userName = defaultName, role = ROLE_VALIDATOR )
1033
+ runnerSaved = runnerApiService.createRunner(organizationSaved.id, workspaceSaved.id, runner)
1034
+
1035
+ runnerSaved =
1036
+ runnerApiService.getRunner(organizationSaved.id, workspaceSaved.id, runnerSaved.id)
1037
+
1038
+ assertEquals(2 , runnerSaved.security.accessControlList.size)
1039
+ assertEquals(ROLE_NONE , runnerSaved.security.default)
1040
+ assertEquals(
1041
+ RunnerAccessControl (CONNECTED_ADMIN_USER , ROLE_ADMIN ),
1042
+ runnerSaved.security.accessControlList[0 ])
1043
+ assertEquals(
1044
+ RunnerAccessControl (defaultName, ROLE_VALIDATOR ), runnerSaved.security.accessControlList[1 ])
1045
+ }
1046
+
1047
+ @Test
1048
+ fun `As a validator, I can see whole security property for listRunners` () {
1049
+ every { getCurrentAccountIdentifier(any()) } returns defaultName
1050
+ organizationSaved = organizationApiService.createOrganization(organization)
1051
+ datasetSaved = datasetApiService.createDataset(organizationSaved.id, dataset)
1052
+ materializeTwingraph()
1053
+ solutionSaved = solutionApiService.createSolution(organizationSaved.id, solution)
1054
+ workspace = makeWorkspaceCreateRequest()
1055
+ workspaceSaved = workspaceApiService.createWorkspace(organizationSaved.id, workspace)
1056
+ runner = makeRunnerCreateRequest(userName = defaultName, role = ROLE_VALIDATOR )
1057
+ runnerSaved = runnerApiService.createRunner(organizationSaved.id, workspaceSaved.id, runner)
1058
+
1059
+ val runners = runnerApiService.listRunners(organizationSaved.id, workspaceSaved.id, null , null )
1060
+ runners.forEach {
1061
+ assertEquals(2 , it.security.accessControlList.size)
1062
+ assertEquals(ROLE_NONE , it.security.default)
1063
+ assertEquals(
1064
+ RunnerAccessControl (CONNECTED_ADMIN_USER , ROLE_ADMIN ), it.security.accessControlList[0 ])
1065
+ assertEquals(
1066
+ RunnerAccessControl (defaultName, ROLE_VALIDATOR ), it.security.accessControlList[1 ])
1067
+ }
1068
+ }
1069
+
1028
1070
private fun makeConnector (name : String = "name"): Connector {
1029
1071
return Connector (
1030
1072
key = UUID .randomUUID().toString(),
0 commit comments