Loading gms/src/main/java/it/inaf/ia2/gms/controller/PermissionsController.java +6 −6 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ public class PermissionsController { @Autowired private PermissionsManager permissionsManager; @GetMapping(value = "/permissions", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @GetMapping(value = "/permissions", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<UserPermission>> getPermissionsTab(TabRequest request) { GroupEntity group = groupsManager.getGroupById(request.getGroupId()); Loading @@ -44,14 +44,14 @@ public class PermissionsController { return ResponseEntity.ok(permissionsPanel); } @GetMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @GetMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Map<String, Permission>> getUserPermission(@RequestParam("groupId") String groupId, @RequestParam("userId") String userId) { GroupEntity group = groupsManager.getGroupById(groupId); Permission permission = permissionsManager.getUserPermission(group, userId); Permission permission = permissionsManager.getDirectUserPermission(group, userId); if (permission == null) { return ResponseEntity.notFound().build(); return ResponseEntity.noContent().build(); } else { Map<String, Permission> response = new HashMap<>(); response.put("permission", permission); Loading @@ -59,7 +59,7 @@ public class PermissionsController { } } @PostMapping(value = "/permission", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/permission", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<UserPermission>> addPermission(@Valid @RequestBody AddPermissionRequest request) { GroupEntity group = groupsManager.getGroupById(request.getGroupId()); Loading @@ -68,7 +68,7 @@ public class PermissionsController { return new ResponseEntity<>(getPermissionsPanel(group, request), HttpStatus.CREATED); } @DeleteMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @DeleteMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<UserPermission>> deletePermission(@Valid MemberRequest request) { GroupEntity group = groupsManager.getGroupById(request.getGroupId()); Loading gms/src/main/java/it/inaf/ia2/gms/manager/PermissionsManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,17 @@ public class PermissionsManager extends UserAwareComponent { return result; } public Permission getDirectUserPermission(GroupEntity group, String userId) { verifyUserCanManagePermissions(group); List<PermissionEntity> permissions = permissionsService.findUserPermissions(group, getCurrentUserId()); for (PermissionEntity permission : permissions) { if (permission.getGroupId().equals(group.getId())) { return permission.getPermission(); } } return null; } public Permission getUserPermission(GroupEntity group, String userId) { verifyUserCanManagePermissions(group); List<PermissionEntity> permissions = permissionsService.findUserPermissions(group, getCurrentUserId()); Loading gms/src/test/java/it/inaf/ia2/gms/controller/PermissionsControllerTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -59,10 +59,10 @@ public class PermissionsControllerTest { @Test public void testGetPermission() throws Exception { when(permissionsManager.getUserPermission(eq(group), eq("user_id"))).thenReturn(Permission.MANAGE_MEMBERS); when(permissionsManager.getDirectUserPermission(eq(group), eq("user_id"))).thenReturn(Permission.MANAGE_MEMBERS); mockMvc.perform(get("/permission?groupId=group_id&userId=user_id") .contentType(MediaType.APPLICATION_JSON_UTF8)) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.permission", is("MANAGE_MEMBERS"))); } Loading @@ -71,8 +71,8 @@ public class PermissionsControllerTest { public void testGetInexistentPermission() throws Exception { mockMvc.perform(get("/permission?groupId=group_id&userId=user_id") .contentType(MediaType.APPLICATION_JSON_UTF8)) .andExpect(status().isNotFound()); .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isNoContent()); } @Test Loading @@ -87,7 +87,7 @@ public class PermissionsControllerTest { mockMvc.perform(post("/permission") .content(mapper.writeValueAsString(request)) .contentType(MediaType.APPLICATION_JSON_UTF8)) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isCreated()) .andExpect(jsonPath("$.currentPage", is(1))); Loading Loading
gms/src/main/java/it/inaf/ia2/gms/controller/PermissionsController.java +6 −6 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ public class PermissionsController { @Autowired private PermissionsManager permissionsManager; @GetMapping(value = "/permissions", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @GetMapping(value = "/permissions", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<UserPermission>> getPermissionsTab(TabRequest request) { GroupEntity group = groupsManager.getGroupById(request.getGroupId()); Loading @@ -44,14 +44,14 @@ public class PermissionsController { return ResponseEntity.ok(permissionsPanel); } @GetMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @GetMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<Map<String, Permission>> getUserPermission(@RequestParam("groupId") String groupId, @RequestParam("userId") String userId) { GroupEntity group = groupsManager.getGroupById(groupId); Permission permission = permissionsManager.getUserPermission(group, userId); Permission permission = permissionsManager.getDirectUserPermission(group, userId); if (permission == null) { return ResponseEntity.notFound().build(); return ResponseEntity.noContent().build(); } else { Map<String, Permission> response = new HashMap<>(); response.put("permission", permission); Loading @@ -59,7 +59,7 @@ public class PermissionsController { } } @PostMapping(value = "/permission", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @PostMapping(value = "/permission", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<UserPermission>> addPermission(@Valid @RequestBody AddPermissionRequest request) { GroupEntity group = groupsManager.getGroupById(request.getGroupId()); Loading @@ -68,7 +68,7 @@ public class PermissionsController { return new ResponseEntity<>(getPermissionsPanel(group, request), HttpStatus.CREATED); } @DeleteMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) @DeleteMapping(value = "/permission", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<PaginatedData<UserPermission>> deletePermission(@Valid MemberRequest request) { GroupEntity group = groupsManager.getGroupById(request.getGroupId()); Loading
gms/src/main/java/it/inaf/ia2/gms/manager/PermissionsManager.java +11 −0 Original line number Diff line number Diff line Loading @@ -61,6 +61,17 @@ public class PermissionsManager extends UserAwareComponent { return result; } public Permission getDirectUserPermission(GroupEntity group, String userId) { verifyUserCanManagePermissions(group); List<PermissionEntity> permissions = permissionsService.findUserPermissions(group, getCurrentUserId()); for (PermissionEntity permission : permissions) { if (permission.getGroupId().equals(group.getId())) { return permission.getPermission(); } } return null; } public Permission getUserPermission(GroupEntity group, String userId) { verifyUserCanManagePermissions(group); List<PermissionEntity> permissions = permissionsService.findUserPermissions(group, getCurrentUserId()); Loading
gms/src/test/java/it/inaf/ia2/gms/controller/PermissionsControllerTest.java +5 −5 Original line number Diff line number Diff line Loading @@ -59,10 +59,10 @@ public class PermissionsControllerTest { @Test public void testGetPermission() throws Exception { when(permissionsManager.getUserPermission(eq(group), eq("user_id"))).thenReturn(Permission.MANAGE_MEMBERS); when(permissionsManager.getDirectUserPermission(eq(group), eq("user_id"))).thenReturn(Permission.MANAGE_MEMBERS); mockMvc.perform(get("/permission?groupId=group_id&userId=user_id") .contentType(MediaType.APPLICATION_JSON_UTF8)) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(jsonPath("$.permission", is("MANAGE_MEMBERS"))); } Loading @@ -71,8 +71,8 @@ public class PermissionsControllerTest { public void testGetInexistentPermission() throws Exception { mockMvc.perform(get("/permission?groupId=group_id&userId=user_id") .contentType(MediaType.APPLICATION_JSON_UTF8)) .andExpect(status().isNotFound()); .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isNoContent()); } @Test Loading @@ -87,7 +87,7 @@ public class PermissionsControllerTest { mockMvc.perform(post("/permission") .content(mapper.writeValueAsString(request)) .contentType(MediaType.APPLICATION_JSON_UTF8)) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isCreated()) .andExpect(jsonPath("$.currentPage", is(1))); Loading