Skip to content

Commit d46ff55

Browse files
committed
WIP for policies
1 parent 393ac7d commit d46ff55

File tree

5 files changed

+59
-6
lines changed

5 files changed

+59
-6
lines changed

server/src/main/java/access/api/InviteController.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
import access.exception.UserRestrictionException;
55
import access.invite.InviteClient;
66
import access.manage.Manage;
7-
import access.manage.ManageData;
87
import access.model.User;
9-
import access.repository.OrganizationRepository;
108
import access.repository.UserRepository;
119
import org.apache.commons.logging.Log;
1210
import org.apache.commons.logging.LogFactory;
@@ -73,7 +71,7 @@ public ResponseEntity<List<Map<String, Object>>> rolesPerOrganizationInviteAppli
7371
if (StringUtils.hasText(idpInstitutionGUID)) {
7472
organizationGUID = idpInstitutionGUID;
7573
} else {
76-
LOG.warn("Not fetching invite roles as there is no institution GUID for IdP: "+user.getAuthenticatingAuthority());
74+
LOG.warn("Not fetching invite roles as there is no institution GUID for IdP: " + user.getAuthenticatingAuthority());
7775
return ResponseEntity.ok(List.of());
7876
}
7977
}
@@ -85,4 +83,16 @@ public ResponseEntity<List<Map<String, Object>>> rolesPerOrganizationInviteAppli
8583
List<Map<String, Object>> inviteRoles = this.inviteClient.rolesPerOrganizationApplicationId(organizationGUID, applicationManageId);
8684
return ResponseEntity.ok(inviteRoles);
8785
}
86+
87+
88+
@GetMapping("/roles-summary")
89+
public ResponseEntity<List<Map<String, Object>>> rolesSummary(User user) {
90+
LOG.debug("/rolesSummary called by: " + user.getEmail());
91+
92+
confirmInstitutionAdmin(user);
93+
94+
List<Map<String, Object>> inviteRoles = this.inviteClient.rolesSummary();
95+
return ResponseEntity.ok(inviteRoles);
96+
}
97+
8898
}

server/src/main/java/access/api/UserAccessRights.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,8 @@ default void confirmApplicationWriteAccess(User user, Application application, A
5454
String.format("User %s is not allowed to access application %s",
5555
user.getEmail(), application.getName()));
5656
}
57-
58-
5957
}
6058

61-
6259
default void confirmApplicationDeleteAccess(User user, Application application) {
6360
if (user.isSuperUser()) {
6461
return;

server/src/main/java/access/invite/InviteClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,12 @@ public List<Map<String, Object>> rolesPerOrganizationApplicationId(String organi
3636
organizationGUID,
3737
applicationManageId);
3838
}
39+
40+
public List<Map<String, Object>> rolesSummary() {
41+
if (!enabled) {
42+
return List.of();
43+
}
44+
return restTemplate.getForObject(
45+
url + "/api/external/v1/internal/invite/roles-summary", List.class);
46+
}
3947
}

server/src/test/java/access/api/InviteControllerTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,4 +207,30 @@ void rolesPerOrganizationInviteApplicationServerSideRequestForgery() {
207207
.statusCode(HttpStatus.BAD_REQUEST.value());
208208
}
209209

210+
@SneakyThrows
211+
@Test
212+
void rolesSummary() {
213+
List<Map<String, Object>> rolesMock = objectMapper.readValue(new ClassPathResource("/invite/roles_summary.json").getInputStream(),
214+
new TypeReference<>() {
215+
});
216+
stubFor(get(urlPathMatching("/api/external/v1/internal/invite/roles-summary"))
217+
.willReturn(aResponse()
218+
.withHeader("Content-Type", "application/json")
219+
.withBody(objectMapper.writeValueAsString(rolesMock))));
220+
221+
AccessCookieFilter accessCookieFilter = openIDConnectFlow("/api/v1/users/me", SUPER_SUB);
222+
223+
List<Map<String, String>> roles = given()
224+
.when()
225+
.filter(accessCookieFilter.cookieFilter())
226+
.accept(ContentType.JSON)
227+
.contentType(ContentType.JSON)
228+
.get("/api/v1/invite/roles-summary")
229+
.as(new TypeRef<>() {
230+
});
231+
232+
assertEquals(2, roles.size());
233+
}
234+
235+
210236
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[
2+
{
3+
"name": "Test Role Profile",
4+
"description": "Test Role Profile",
5+
"urn": "urn:mace:surf.nl:invite.test2.surfconext.nl:f5b477df-6af9-46f8-b0fa-8e7a8695afb0:test_role_profile"
6+
},
7+
{
8+
"name": "Test Role Profile II ",
9+
"description": "Test Role Profile Description",
10+
"urn": "urn:mace:surf.nl:invite.test2.surfconext.nl:f5b477df-6af9-46f8-b0fa-8e7a8695afb0:test_role2_profile"
11+
}
12+
]

0 commit comments

Comments
 (0)