From 43a4c1a5a4a596b61a21b11142554af7bc6b88a2 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Fri, 16 Dec 2022 13:45:03 +0200 Subject: [PATCH 1/3] [Admin Tools | log4j2]: CommunityController.java: In method "updateCommunity()", update also portalPid in the related menu | MenuService.java: Added method "updatePid()". --- .../controllers/CommunityController.java | 1 + .../dnetlib/uoaadmintools/services/MenuService.java | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java index f09979c..84e9f13 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java @@ -72,6 +72,7 @@ public class CommunityController { subscriberService.updatePid(old_pid, new_pid); layoutService.updatePid(old_pid, new_pid); notificationsService.updatePid(old_pid, new_pid); + menuService.updatePid(old_pid, new_pid); } return portalResponse; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java index bd0c83b..960a339 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java @@ -2,6 +2,7 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.MenuDAO; import eu.dnetlib.uoaadmintools.dao.MenuItemDAO; +import eu.dnetlib.uoaadmintools.entities.Notifications; import eu.dnetlib.uoaadmintools.entities.menu.*; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; @@ -372,4 +373,14 @@ public class MenuService { return menuDAO.save(menu); } + + public void updatePid(String old_pid, String new_pid) { + log.debug("menu service: updatePid"); + Menu menu = menuDAO.findByPortalPid(old_pid); + if(menu != null) { + menu.setPortalPid(new_pid); + menuDAO.save(menu); + log.debug("menu saved!"); + } + } } From 58f66129453a5e3a53354ebae26dc5b05aa906d2 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Fri, 16 Dec 2022 14:04:57 +0200 Subject: [PATCH 2/3] [Admin Tools | log4j2]: MenuService.java: [Bug fix] Method "updatePid()" needs to update portalPid in menu and menu items. --- .../eu/dnetlib/uoaadmintools/services/MenuService.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java index 960a339..e43423d 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java @@ -382,5 +382,14 @@ public class MenuService { menuDAO.save(menu); log.debug("menu saved!"); } + + List menuItems = menuItemDAO.findByPortalPid(old_pid); + if(menuItems != null) { + menuItems.forEach(menuItem -> { + menuItem.setPortalPid(new_pid); + menuItemDAO.save(menuItem); + log.debug("menuItem saved!"); + }); + } } } From 675ea269cc8ebbba04271956fc8b9b32f8b67d68 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Wed, 3 May 2023 13:13:08 +0300 Subject: [PATCH 3/3] Admin Tools | log4j2: pom.xml: Updated version of uoa-admin-tools-library to 1.0.7 (previous 1.0.6) | CommunityController.java & ConnectController.java & ExploreController.java: In methods of update portal, if pid was changed, call also pageService.updatePid() --- pom.xml | 2 +- .../controllers/CommunityController.java | 5 +++++ .../uoaadmintools/controllers/ConnectController.java | 10 ++++++++-- .../uoaadmintools/controllers/ExploreController.java | 11 +++++++++++ 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 141da51..c1030a4 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ eu.dnetlib uoa-admin-tools-library - 1.0.6 + 1.0.7 diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java index 84e9f13..115d580 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java @@ -7,6 +7,7 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.fullEntities.PortalResponse; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; +import eu.dnetlib.uoaadmintoolslibrary.services.PageService; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -43,6 +44,9 @@ public class CommunityController { @Autowired private PortalService portalService; + @Autowired + private PageService pageService; + @RequestMapping(value = {""}, method = RequestMethod.GET) public List getAllCommunities() { return portalService.getAllPortalsByType("community"); @@ -73,6 +77,7 @@ public class CommunityController { layoutService.updatePid(old_pid, new_pid); notificationsService.updatePid(old_pid, new_pid); menuService.updatePid(old_pid, new_pid); + pageService.updatePid(old_pid, new_pid, portal.getType()); } return portalResponse; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java index 3da4d68..0edb39a 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java @@ -6,6 +6,7 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.Portal; import eu.dnetlib.uoaadmintoolslibrary.entities.fullEntities.PortalResponse; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; +import eu.dnetlib.uoaadmintoolslibrary.services.PageService; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -27,6 +28,9 @@ public class ConnectController { @Autowired private PortalService portalService; + @Autowired + private PageService pageService; + @PreAuthorize("hasAnyAuthority(@AuthorizationService.PORTAL_ADMIN)") @RequestMapping(value = "/update", method = RequestMethod.POST) public PortalResponse updateConnect(@RequestBody Portal portal) { @@ -35,12 +39,14 @@ public class ConnectController { throw new MismatchingContentException("Update Connect: Portal with id: " + portal.getId() + " has type: " + portal.getType() + " instead of connect"); } + String old_pid = portalService.getPortalById(portal.getId()).getPid(); + String new_pid = portal.getPid(); + PortalResponse portalResponse = portalService.updatePortal(portal); - String old_pid = portalResponse.getPid(); - String new_pid = portal.getPid(); if (!old_pid.equals(new_pid)) { layoutService.updatePid(old_pid, new_pid); + pageService.updatePid(old_pid, new_pid, portal.getType()); } return portalResponse; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java index a9b06c0..87edf69 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java @@ -4,6 +4,7 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.Portal; import eu.dnetlib.uoaadmintoolslibrary.entities.fullEntities.PortalResponse; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; +import eu.dnetlib.uoaadmintoolslibrary.services.PageService; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -23,13 +24,23 @@ public class ExploreController { @Autowired private PortalService portalService; + @Autowired + private PageService pageService; + @RequestMapping(value = "/update", method = RequestMethod.POST) public PortalResponse updateExplore(@RequestBody Portal portal) { if(!portal.getType().equals("explore")) { // EXCEPTION - MismatchingContent throw new MismatchingContentException("Update Explore: Portal with id: "+portal.getId()+" has type: "+portal.getType()+" instead of explore"); } + String old_pid = portalService.getPortalById(portal.getId()).getPid(); + String new_pid = portal.getPid(); + PortalResponse portalResponse = portalService.updatePortal(portal); + + if (!old_pid.equals(new_pid)) { + pageService.updatePid(old_pid, new_pid, portal.getType()); + } return portalResponse; }