From e3dd21427f0d78b5511fda113f8184b1745e311b Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Fri, 30 Oct 2020 18:59:55 +0100 Subject: [PATCH] Bugfix --- gms/pom.xml | 2 +- .../java/it/inaf/ia2/gms/controller/HomePageController.java | 6 +++++- .../it/inaf/ia2/gms/controller/JWTWebServiceController.java | 4 ++-- .../main/java/it/inaf/ia2/gms/service/SearchService.java | 6 +++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gms/pom.xml b/gms/pom.xml index e54edb9..2f599fb 100644 --- a/gms/pom.xml +++ b/gms/pom.xml @@ -40,7 +40,7 @@ </dependency> <dependency> <groupId>${project.groupId}</groupId> - <artifactId>AuthLib</artifactId> + <artifactId>auth-lib</artifactId> <version>2.0.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/gms/src/main/java/it/inaf/ia2/gms/controller/HomePageController.java b/gms/src/main/java/it/inaf/ia2/gms/controller/HomePageController.java index d39135f..b005156 100644 --- a/gms/src/main/java/it/inaf/ia2/gms/controller/HomePageController.java +++ b/gms/src/main/java/it/inaf/ia2/gms/controller/HomePageController.java @@ -82,6 +82,10 @@ public class HomePageController { @GetMapping(value = "/", produces = MediaType.TEXT_HTML_VALUE) public String index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // This page MUST NOT be cached to avoid losing the login redirect + response.setHeader("Cache-Control", "no-store, must-revalidate"); + response.setHeader("Expires", "0"); + Optional<List<InvitedRegistration>> optReg = invitedRegistrationManager.completeInvitedRegistrationIfNecessary(); if (optReg.isPresent()) { request.setAttribute("invited-registrations", optReg.get()); @@ -95,6 +99,6 @@ public class HomePageController { public void logout(HttpSession httpSession, HttpServletResponse response) throws IOException { httpSession.invalidate(); String baseUrl = ServletUriComponentsBuilder.fromCurrentContextPath().build().toUriString(); - response.sendRedirect(baseUrl); + response.sendRedirect(baseUrl + "/"); } } diff --git a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java index 930c8ed..22ce426 100644 --- a/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java +++ b/gms/src/main/java/it/inaf/ia2/gms/controller/JWTWebServiceController.java @@ -239,15 +239,15 @@ public class JWTWebServiceController { @GetMapping(value = {"/permission/{group:.+}", "/permission"}, produces = MediaType.TEXT_PLAIN_VALUE) public void getUserPermission(@PathVariable("group") Optional<String> groupNames, @RequestParam("user_id") Optional<String> userId, HttpServletRequest request, HttpServletResponse response) throws IOException { + GroupEntity groupEntity = getGroupFromNames(extractGroupNames(groupNames)); if (userId.isPresent()) { try ( PrintWriter pw = new PrintWriter(response.getOutputStream())) { - for (UserPermission userPermission : searchService.getUserPermission(userId.get(), permissionsManager.getCurrentUserPermissions(getRoot()))) { + for (UserPermission userPermission : searchService.getUserPermission(groupEntity, userId.get(), permissionsManager.getCurrentUserPermissions(groupEntity))) { String group = String.join(".", userPermission.getGroupCompleteName()); pw.println(group + " " + userPermission.getPermission()); } } } else { - GroupEntity groupEntity = getGroupFromNames(extractGroupNames(groupNames)); try ( PrintWriter pw = new PrintWriter(response.getOutputStream())) { for (it.inaf.ia2.gms.model.UserPermission up : permissionsManager.getAllPermissions(groupEntity)) { pw.println(up.getUser().getId() + " " + up.getPermission()); diff --git a/gms/src/main/java/it/inaf/ia2/gms/service/SearchService.java b/gms/src/main/java/it/inaf/ia2/gms/service/SearchService.java index 89cd7c5..bd7f635 100644 --- a/gms/src/main/java/it/inaf/ia2/gms/service/SearchService.java +++ b/gms/src/main/java/it/inaf/ia2/gms/service/SearchService.java @@ -115,7 +115,7 @@ public class SearchService { sortByGroupCompleteName(groups); response.setGroups(groups); - List<UserPermission> permissions = getUserPermission(targetUserId, actorPermissions); + List<UserPermission> permissions = getUserPermission(groupsManager.getRoot(), targetUserId, actorPermissions); sortByGroupCompleteName(permissions); response.setPermissions(permissions); @@ -147,12 +147,12 @@ public class SearchService { .collect(Collectors.toList()); } - public List<UserPermission> getUserPermission(String targetUserId, List<PermissionEntity> actorPermissions) { + public List<UserPermission> getUserPermission(GroupEntity group, String targetUserId, List<PermissionEntity> actorPermissions) { List<UserPermission> permissions = new ArrayList<>(); // Super-admin user is able to see also other user permissions - PermissionUtils.getGroupPermission(groupsManager.getRoot(), actorPermissions).ifPresent(permission -> { + PermissionUtils.getGroupPermission(group, actorPermissions).ifPresent(permission -> { if (permission.equals(Permission.ADMIN)) { Map<String, PermissionEntity> targetUserPermissions -- GitLab