Compare commits

...

16 Commits

Author SHA1 Message Date
Konstantinos Triantafyllou 61096bf7ea Update admin tools library 2024-04-03 14:55:30 +03:00
Konstantinos Triantafyllou 87d4ffa8b3 Fix RoleUtils 2023-06-30 13:53:26 +03:00
Konstantinos Triantafyllou f51095c183 Merge remote-tracking branch 'origin/log4j2' 2023-05-19 16:50:59 +03:00
Konstantinos Triantafyllou 0116120843 Pom: Add spring-boot-version in maven-plugin 2023-05-19 16:50:33 +03:00
Konstantina Galouni 61cba891a1 Merge pull request 'log4j2' (#1) from log4j2 into master
Reviewed-on: #1
2023-05-03 12:14:50 +02:00
Konstantina Galouni 675ea269cc 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() 2023-05-03 13:13:08 +03:00
Konstantina Galouni 58f6612945 [Admin Tools | log4j2]: MenuService.java: [Bug fix] Method "updatePid()" needs to update portalPid in menu and menu items. 2022-12-16 14:04:57 +02:00
Konstantina Galouni 43a4c1a5a4 [Admin Tools | log4j2]: CommunityController.java: In method "updateCommunity()", update also portalPid in the related menu | MenuService.java: Added method "updatePid()". 2022-12-16 13:45:03 +02:00
Konstantina Galouni 0586a82e86 Merge log4j2 branch into master 2022-12-12 10:45:22 +02:00
Konstantina Galouni 4f62befa74 [Admin Tools | log4j2]: Allow curators with profile to be invisible in the Gateway | Dynamically align custom menu.
1. Curator.java & CuratorResponse.java: Added field private boolean visible = true; to allow curators have a profile but not be visible in the Gateway.
2. CuratorService.java: In method "getCurators()" called by /{pid}/curator, return curators that have a profile and the profile is visible.
3. MenuAlignment.java: Enum created for menu alignment options.
4. Menu.java & MenuFull.java: Added field public MenuAlignment featuredAlignment = MenuAlignment.CENTER; to allow dynamic alignment of the Gateway custom menu.
5. MenuController.java: Added api method "alignMenu()" (/community/{pid}/menu/align), to change alignment of the custom menu.
6. MenuService.java: Added method "alignMenu()" | Set featuredAlignment field (default to "CENTER").
2022-12-09 15:01:00 +02:00
Konstantina Galouni 22d010c096 [Admin Tools | log4j2]: AdminToolsCheckDeployController.java: In /health_check/advanced method added admintool.cache.url. 2022-11-08 15:24:35 +02:00
Konstantinos Triantafyllou 5ba5ab4587 [maven-release-plugin] rollback the release of uoa-admin-tools-2.0.5 2022-09-19 10:16:23 +03:00
Konstantinos Triantafyllou fdb546500b [maven-release-plugin] prepare for next development iteration 2022-09-19 10:15:33 +03:00
Konstantinos Triantafyllou a1cf5f9a59 [maven-release-plugin] prepare release uoa-admin-tools-2.0.5 2022-09-19 10:15:27 +03:00
Konstantinos Triantafyllou d8ee820a78 Fix scm info type 2022-09-19 10:12:34 +03:00
Konstantinos Triantafyllou 2f6fbc0efe Add scm info 2022-09-19 10:10:38 +03:00
13 changed files with 132 additions and 14 deletions

View File

@ -38,7 +38,7 @@
<dependency> <!-- this dependency includes dependency to uoa-authorization-library -->
<groupId>eu.dnetlib</groupId>
<artifactId>uoa-admin-tools-library</artifactId>
<version>1.0.6</version>
<version>1.0.11</version>
</dependency>
<!--swagger-->
<dependency>
@ -58,6 +58,7 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot-version}</version>
<configuration>
<mainClass>eu.dnetlib.uoaadmintools.UoaAdminToolsApplication</mainClass>
<executable>true</executable>

View File

@ -5,6 +5,7 @@ import com.mongodb.CommandResult;
import com.mongodb.DBObject;
import eu.dnetlib.uoaadmintools.configuration.GlobalVars;
import eu.dnetlib.uoaadmintools.configuration.mongo.MongoConnection;
import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig;
import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig;
import eu.dnetlib.uoaadmintools.configuration.properties.MongoConfig;
import org.apache.logging.log4j.LogManager;
@ -35,6 +36,9 @@ public class AdminToolsCheckDeployController {
@Autowired
private ManagersApiConfig managersApiConfig;
@Autowired
private BrowserCacheConfig browserCacheConfig;
@Autowired
private GlobalVars globalVars;
@ -68,6 +72,8 @@ public class AdminToolsCheckDeployController {
response.put("admintool.managers.api.id", managersApiConfig.getId());
response.put("admintool.managers.api.email", managersApiConfig.getEmail());
response.put("admintool.cache.url", browserCacheConfig.getUrl());
if(globalVars.date != null) {
response.put("Date of deploy", globalVars.date.toString());
}

View File

@ -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<Portal> getAllCommunities() {
return portalService.getAllPortalsByType("community");
@ -72,6 +76,8 @@ 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);
pageService.updatePid(old_pid, new_pid, portal.getType());
}
return portalResponse;
@ -96,8 +102,6 @@ public class CommunityController {
@PreAuthorize("hasAnyAuthority(@AuthorizationService.PORTAL_ADMIN)")
@RequestMapping(value = "/delete", method = RequestMethod.POST)
public Boolean deleteCommunities(@RequestBody List<String> portals) throws Exception {
List<String> roles = rolesUtils.getRoles();
for (String id: portals) {
Portal portal = portalService.getPortalById(id);
if(portal == null) {

View File

@ -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;

View File

@ -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;
}

View File

@ -1,9 +1,6 @@
package eu.dnetlib.uoaadmintools.controllers;
import eu.dnetlib.uoaadmintools.entities.menu.Menu;
import eu.dnetlib.uoaadmintools.entities.menu.MenuFull;
import eu.dnetlib.uoaadmintools.entities.menu.MenuItem;
import eu.dnetlib.uoaadmintools.entities.menu.MenuItemFull;
import eu.dnetlib.uoaadmintools.entities.menu.*;
import eu.dnetlib.uoaadmintools.services.MenuService;
import eu.dnetlib.uoaadmintoolslibrary.dao.PortalDAO;
import eu.dnetlib.uoaadmintoolslibrary.entities.Portal;
@ -209,4 +206,13 @@ public class MenuController {
public Menu toggleMenu(@PathVariable(value = "pid") String pid, @RequestParam String status, @RequestParam(value="featured", required=false) String isFeatured) throws Exception {
return menuService.toggleMenu(pid, status, isFeatured);
}
@PreAuthorize("hasAnyAuthority(" +
"@AuthorizationService.PORTAL_ADMIN, " +
"@AuthorizationService.curator('community')," +
"@AuthorizationService.manager('community', #pid))")
@RequestMapping(value = {"/community/{pid}/menu/align"}, method = RequestMethod.POST)
public Menu alignMenu(@PathVariable(value = "pid") String pid, @RequestParam String alignment) throws Exception {
return menuService.alignMenu(pid, alignment);
}
}

View File

@ -16,6 +16,7 @@ public class Curator {
private List<Affiliation> affiliations;
private String photo;
private String bio;
private boolean visible = true;
public Curator() {}
@ -66,4 +67,12 @@ public class Curator {
public void setBio(String bio) {
this.bio = bio;
}
public boolean isVisible() {
return visible;
}
public void setVisible(boolean visible) {
this.visible = visible;
}
}

View File

@ -10,6 +10,7 @@ public class CuratorResponse {
private List<Affiliation> affiliations;
private String photo;
private String bio;
private boolean visible = true;
public CuratorResponse() {
}
@ -52,4 +53,12 @@ public class CuratorResponse {
public void setBio(String bio) {
this.bio = bio;
}
public boolean isVisible() {
return visible;
}
public void setVisible(boolean visible) {
this.visible = visible;
}
}

View File

@ -14,6 +14,7 @@ public class Menu {
public boolean isMenuEnabled;
public List<String> featuredMenuItems;
public List<String> menuItems;
public MenuAlignment featuredAlignment = MenuAlignment.CENTER;
public Menu(String portalPid) {
this.setPortalPid(portalPid);
@ -21,6 +22,7 @@ public class Menu {
this.setFeaturedMenuEnabled(true);
this.setMenuItems(new ArrayList<>());
this.setFeaturedMenuItems(new ArrayList<>());
this.setFeaturedAlignment(MenuAlignment.CENTER.name());
}
public String getPortalPid() {
@ -62,4 +64,20 @@ public class Menu {
public void setMenuItems(List<String> menuItems) {
this.menuItems = menuItems;
}
public String getFeaturedAlignment() {
if(featuredAlignment == null) {
return null;
}
return featuredAlignment.name();
}
public void setFeaturedAlignment(String featuredAlignment) {
if(featuredAlignment == null) {
this.featuredAlignment = null;
} else {
MenuAlignment alignment = MenuAlignment.valueOf(featuredAlignment);
this.featuredAlignment = alignment;
}
}
}

View File

@ -0,0 +1,5 @@
package eu.dnetlib.uoaadmintools.entities.menu;
public enum MenuAlignment {
LEFT, CENTER, RIGHT
}

View File

@ -8,6 +8,7 @@ public class MenuFull {
public boolean isMenuEnabled;
public List<MenuItemFull> featuredMenuItems;
public List<MenuItemFull> menuItems;
public MenuAlignment featuredAlignment = MenuAlignment.CENTER;
public String getPortalPid() {
return portalPid;
@ -48,4 +49,20 @@ public class MenuFull {
public void setMenuItems(List<MenuItemFull> menuItems) {
this.menuItems = menuItems;
}
public String getFeaturedAlignment() {
if(featuredAlignment == null) {
return null;
}
return featuredAlignment.name();
}
public void setFeaturedAlignment(String featuredAlignment) {
if(featuredAlignment == null) {
this.featuredAlignment = null;
} else {
MenuAlignment alignment = MenuAlignment.valueOf(featuredAlignment);
this.featuredAlignment = alignment;
}
}
}

View File

@ -29,7 +29,7 @@ public class CuratorService {
List<CuratorResponse> curators = new ArrayList<>();
for (Manager manager : managerService.getManagers(pid, ManagerService.Type.ID)) {
Curator curator = curatorDAO.findById(parseId(manager.getId()));
if (curator != null) {
if (curator != null && curator.isVisible()) {
curators.add(new CuratorResponse(curator));
}
}

View File

@ -2,10 +2,8 @@ package eu.dnetlib.uoaadmintools.services;
import eu.dnetlib.uoaadmintools.dao.MenuDAO;
import eu.dnetlib.uoaadmintools.dao.MenuItemDAO;
import eu.dnetlib.uoaadmintools.entities.menu.Menu;
import eu.dnetlib.uoaadmintools.entities.menu.MenuFull;
import eu.dnetlib.uoaadmintools.entities.menu.MenuItem;
import eu.dnetlib.uoaadmintools.entities.menu.MenuItemFull;
import eu.dnetlib.uoaadmintools.entities.Notifications;
import eu.dnetlib.uoaadmintools.entities.menu.*;
import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException;
import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException;
import org.apache.logging.log4j.LogManager;
@ -86,6 +84,7 @@ public class MenuService {
if(menu == null) {
menuFull.setFeaturedMenuEnabled(true);
menuFull.setMenuEnabled(true);
menuFull.setFeaturedAlignment(MenuAlignment.CENTER.name());
} else {
for (String menuItemId : menu.getFeaturedMenuItems()) {
featuredMenuItems.add(getFullRootMenuItemById(menuItemId, portalPid, true));
@ -97,6 +96,7 @@ public class MenuService {
menuFull.setFeaturedMenuEnabled(menu.getIsFeaturedMenuEnabled());
menuFull.setMenuEnabled(menu.getIsMenuEnabled());
menuFull.setFeaturedAlignment(menu.getFeaturedAlignment());
}
menuFull.setPortalPid(portalPid);
@ -366,4 +366,30 @@ public class MenuService {
}
return menuDAO.save(menu);
}
public Menu alignMenu(String pid, String alignment) {
Menu menu = menuDAO.findByPortalPid(pid);
menu.setFeaturedAlignment(alignment);
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!");
}
List<MenuItem> menuItems = menuItemDAO.findByPortalPid(old_pid);
if(menuItems != null) {
menuItems.forEach(menuItem -> {
menuItem.setPortalPid(new_pid);
menuItemDAO.save(menuItem);
log.debug("menuItem saved!");
});
}
}
}