diff --git a/pom.xml b/pom.xml index 7a85d23..141da51 100644 --- a/pom.xml +++ b/pom.xml @@ -2,27 +2,21 @@ 4.0.0 - eu.dnetlib uoa-admin-tools 2.0.5-SNAPSHOT war uoa-admin-tools - - scm:git:gitea@code-repo.d4science.org:MaDgIK/uoa-admin-tools.git - scm:git:gitea@code-repo.d4science.org:MaDgIK/uoa-admin-tools.git - https://code-repo.d4science.org/MaDgIK/uoa-admin-tools/ - - + + scm:git:gitea@code-repo.d4science.org:MaDgIK/uoa-admin-tools.git + - org.springframework.boot - spring-boot-starter-parent - 1.5.8.RELEASE - + eu.dnetlib + uoa-spring-boot-parent + 1.0.0 UTF-8 UTF-8 - 1.8 ${maven.build.timestamp} E MMM dd HH:mm:ss z yyyy @@ -31,77 +25,51 @@ org.springframework.boot spring-boot-starter-data-mongodb - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-logging - - - - - - org.springframework.boot - spring-boot-starter-tomcat - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-security - - - - log4j - log4j - 1.2.17 - - - com.google.code.gson - gson - 2.8.2 - javax.mail mail 1.5.0-b01 - - commons-io - commons-io - 20030203.000550 - + + + + + eu.dnetlib uoa-admin-tools-library - 1.0.5 + 1.0.6 + + + + io.springfox + springfox-swagger2 + ${swagger-version} + + + + io.springfox + springfox-swagger-ui + ${swagger-version} - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - + org.springframework.boot + spring-boot-maven-plugin + + eu.dnetlib.uoaadmintools.UoaAdminToolsApplication + true + + + + + repackage + + + + org.apache.maven.plugins maven-war-plugin @@ -112,27 +80,5 @@ uoa-admin-tools - - - src/main/resources - true - - - - - - dnet45-releases - D-Net 45 Releases - http://maven.research-infrastructures.eu/nexus/content/repositories/dnet45-releases - - true - - - false - - default - - - diff --git a/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java b/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java index c9e5dee..808e13e 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/UoaAdminToolsApplication.java @@ -2,6 +2,7 @@ package eu.dnetlib.uoaadmintools; import com.fasterxml.jackson.databind.ObjectMapper; import eu.dnetlib.uoaadmintools.configuration.GlobalVars; +import eu.dnetlib.uoaadmintools.configuration.properties.APIProperties; import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig; import eu.dnetlib.uoaadmintools.configuration.properties.ManagersApiConfig; import eu.dnetlib.uoaadmintools.configuration.properties.MongoConfig; @@ -24,7 +25,7 @@ import org.springframework.web.client.RestTemplate; @PropertySource("classpath:admintools.properties"), @PropertySource(value = "classpath:dnet-override.properties", ignoreResourceNotFound = true) }) -@EnableConfigurationProperties({MongoConfig.class, ManagersApiConfig.class, BrowserCacheConfig.class, GlobalVars.class}) +@EnableConfigurationProperties({MongoConfig.class, ManagersApiConfig.class, BrowserCacheConfig.class, GlobalVars.class, APIProperties.class}) @Import({AuthorizationConfiguration.class, UoaAdminToolsLibraryConfiguration.class}) public class UoaAdminToolsApplication { diff --git a/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java b/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java new file mode 100644 index 0000000..a9091bb --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaadmintools/configuration/SwaggerConfig.java @@ -0,0 +1,108 @@ +package eu.dnetlib.uoaadmintools.configuration; + +import eu.dnetlib.uoaadmintools.configuration.properties.APIProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.Collections; +import java.util.List; + +/** + * Swagger configuration class + */ +@Configuration +@Profile({"swagger"}) +@EnableSwagger2 +public class SwaggerConfig extends WebMvcConfigurerAdapter { + + private final APIProperties apiProperties; + + @Autowired + public SwaggerConfig(APIProperties apiProperties) { + this.apiProperties = apiProperties; + } + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) +// .globalOperationParameters(globalParameterList()) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaadmintools.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + @Bean + public Docket createRestApiLibrary() { + return new Docket(DocumentationType.SWAGGER_2) +// .globalOperationParameters(globalParameterList()) + .apiInfo(apiInfo()) + .groupName("Library") + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaadmintoolslibrary.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + @Bean + public Docket createRestApiAuthorizationLibrary() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .groupName("Authorization Library") + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaauthorizationlibrary.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title(this.apiProperties.getTitle()) + .description(this.apiProperties.getDescription()) + .version(this.apiProperties.getVersion()) + .build(); + } + + private List globalParameterList() { + Parameter authTokenHeader = new ParameterBuilder() + .name("Session") // name of the header + .modelRef(new ModelRef("string")) // data-type of the header + .required(false) + .parameterType("header") + .description("Session ID") + .build(); + return Collections.singletonList(authTokenHeader); + } + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addRedirectViewController("/v2/api-docs", "/v2/api-docs"); + registry.addRedirectViewController("/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui"); + registry.addRedirectViewController("/swagger-resources/configuration/security", "/swagger-resources/configuration/security"); + registry.addRedirectViewController("/swagger-resources", "/swagger-resources"); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + +} + diff --git a/src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/APIProperties.java b/src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/APIProperties.java new file mode 100644 index 0000000..41c16dd --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaadmintools/configuration/properties/APIProperties.java @@ -0,0 +1,38 @@ +package eu.dnetlib.uoaadmintools.configuration.properties; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties("api") +public class APIProperties { + + private String title; + private String description; + private String version; + + public APIProperties() { + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } +} diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java index cd91dd8..6a0efba 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/AdminToolsCheckDeployController.java @@ -5,9 +5,11 @@ 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.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.security.access.prepost.PreAuthorize; @@ -23,7 +25,7 @@ import java.util.Map; @RestController @CrossOrigin(origins = "*") public class AdminToolsCheckDeployController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private MongoConnection mongoConnection; @@ -34,6 +36,9 @@ public class AdminToolsCheckDeployController { @Autowired private ManagersApiConfig managersApiConfig; + @Autowired + private BrowserCacheConfig browserCacheConfig; + @Autowired private GlobalVars globalVars; @@ -67,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()); } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java index 6b78e6f..dc4bb3a 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/BrowserCacheController.java @@ -1,19 +1,18 @@ package eu.dnetlib.uoaadmintools.controllers; import eu.dnetlib.uoaadmintools.configuration.properties.BrowserCacheConfig; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.ResourceAccessException; import org.springframework.web.client.RestTemplate; @RestController @RequestMapping("/cache") @CrossOrigin(origins = "*") public class BrowserCacheController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private RestTemplate restTemplate; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java index 2e1ef8b..f09979c 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CommunityController.java @@ -8,7 +8,8 @@ import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -19,7 +20,7 @@ import java.util.List; @RequestMapping("/community") @CrossOrigin(origins = "*") public class CommunityController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private RolesUtils rolesUtils; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java index 9420b5b..3da4d68 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ConnectController.java @@ -7,7 +7,8 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.fullEntities.PortalResponse; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -18,7 +19,7 @@ import java.util.List; @RequestMapping("/connect") @CrossOrigin(origins = "*") public class ConnectController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private LayoutService layoutService; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java index 6a46990..02bac7e 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/CuratorController.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintools.entities.curator.CuratorResponse; import eu.dnetlib.uoaadmintools.services.CuratorService; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -15,7 +16,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class CuratorController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private CuratorService curatorService; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java index 6153771..291e839 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/EmailController.java @@ -12,7 +12,8 @@ import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.InvalidReCaptchaException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; import eu.dnetlib.uoaadmintoolslibrary.recaptcha.VerifyRecaptcha; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -21,7 +22,7 @@ import java.util.*; @RestController @CrossOrigin(origins = "*") public class EmailController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private EmailSender emailSender; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java index 9b8ac06..a9b06c0 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/ExploreController.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.fullEntities.PortalResponse; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.services.PortalService; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -17,7 +18,7 @@ import java.util.List; @CrossOrigin(origins = "*") @PreAuthorize("hasAnyAuthority(@AuthorizationService.PORTAL_ADMIN)") public class ExploreController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private PortalService portalService; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java index 7110434..2120169 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/MenuController.java @@ -1,16 +1,14 @@ 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; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -20,7 +18,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class MenuController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private MenuService menuService; @@ -208,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); + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java index 75fac21..ddf021c 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/NotificationsController.java @@ -7,7 +7,8 @@ import eu.dnetlib.uoaadmintoolslibrary.entities.Portal; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -20,7 +21,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class NotificationsController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private NotificationsDAO notificationsDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java index 05ce988..86356ae 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/PortalSubscribersController.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintools.entities.subscriber.PortalSubscribers; import eu.dnetlib.uoaadmintoolslibrary.dao.PortalDAO; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.responses.SingleValueWrapperResponse; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -26,7 +27,7 @@ public class PortalSubscribersController { // @Autowired // private SecurityConfig securityConfig; - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @RequestMapping(value = "/community/{pid}/subscribers/count", method = RequestMethod.GET) public SingleValueWrapperResponse getNumberOfSubscribersPerPortal(@PathVariable(value="pid", required = true) String pid) throws ContentNotFoundException { diff --git a/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java b/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java index 9510a55..f42a32b 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/controllers/SubscriberController.java @@ -3,7 +3,8 @@ package eu.dnetlib.uoaadmintools.controllers; import eu.dnetlib.uoaadmintools.dao.SubscriberDAO; import eu.dnetlib.uoaadmintools.entities.subscriber.Subscriber; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -15,7 +16,7 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class SubscriberController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private SubscriberDAO subscriberDAO; @RequestMapping(value = "/subscriber", method = RequestMethod.GET) diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java index 41cbe28..c7a9423 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/Curator.java @@ -16,6 +16,7 @@ public class Curator { private List 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; + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java index 8ddbfd7..08c1278 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/curator/CuratorResponse.java @@ -10,6 +10,7 @@ public class CuratorResponse { private List 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; + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java index d1d2c4d..696c044 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/Menu.java @@ -14,6 +14,7 @@ public class Menu { public boolean isMenuEnabled; public List featuredMenuItems; public List 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 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; + } + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuAlignment.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuAlignment.java new file mode 100644 index 0000000..c976cca --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuAlignment.java @@ -0,0 +1,5 @@ +package eu.dnetlib.uoaadmintools.entities.menu; + +public enum MenuAlignment { + LEFT, CENTER, RIGHT +} diff --git a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java index 501d4b0..90a7bbd 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/entities/menu/MenuFull.java @@ -8,6 +8,7 @@ public class MenuFull { public boolean isMenuEnabled; public List featuredMenuItems; public List menuItems; + public MenuAlignment featuredAlignment = MenuAlignment.CENTER; public String getPortalPid() { return portalPid; @@ -48,4 +49,20 @@ public class MenuFull { public void setMenuItems(List 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; + } + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java index 85e5247..a71d219 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/CuratorService.java @@ -5,7 +5,8 @@ import eu.dnetlib.uoaadmintools.dao.CuratorDAO; import eu.dnetlib.uoaadmintools.entities.Manager; import eu.dnetlib.uoaadmintools.entities.curator.Curator; import eu.dnetlib.uoaadmintools.entities.curator.CuratorResponse; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -15,7 +16,7 @@ import java.util.List; @Service public class CuratorService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private CuratorDAO curatorDAO; @@ -28,7 +29,7 @@ public class CuratorService { List 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)); } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java index 429acb7..a110d14 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/LayoutService.java @@ -3,15 +3,16 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.LayoutDAO; import eu.dnetlib.uoaadmintools.entities.Layout; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.apache.logging.log4j.LogManager; import java.util.List; @Service public class LayoutService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private LayoutDAO layoutDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java index fbec4ed..bd0c83b 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/MenuService.java @@ -2,13 +2,11 @@ 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.menu.*; import eu.dnetlib.uoaadmintoolslibrary.handlers.ContentNotFoundException; import eu.dnetlib.uoaadmintoolslibrary.handlers.MismatchingContentException; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -17,7 +15,7 @@ import java.util.List; @Service public class MenuService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private MenuDAO menuDAO; @@ -85,6 +83,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)); @@ -96,6 +95,7 @@ public class MenuService { menuFull.setFeaturedMenuEnabled(menu.getIsFeaturedMenuEnabled()); menuFull.setMenuEnabled(menu.getIsMenuEnabled()); + menuFull.setFeaturedAlignment(menu.getFeaturedAlignment()); } menuFull.setPortalPid(portalPid); @@ -365,4 +365,11 @@ 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); + } } diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java index 81ec8db..7442679 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/NotificationsService.java @@ -2,7 +2,8 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.NotificationsDAO; import eu.dnetlib.uoaadmintools.entities.Notifications; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -10,7 +11,7 @@ import java.util.List; @Service public class NotificationsService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private NotificationsDAO notificationsDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java index afccd59..001445e 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/StatisticsService.java @@ -2,13 +2,14 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.StatisticsDAO; import eu.dnetlib.uoaadmintools.entities.statistics.Statistics; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class StatisticsService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private StatisticsDAO statisticsDAO; diff --git a/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java b/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java index 798a032..235e4a5 100644 --- a/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java +++ b/src/main/java/eu/dnetlib/uoaadmintools/services/SubscriberService.java @@ -2,13 +2,14 @@ package eu.dnetlib.uoaadmintools.services; import eu.dnetlib.uoaadmintools.dao.PortalSubscribersDAO; import eu.dnetlib.uoaadmintools.entities.subscriber.PortalSubscribers; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class SubscriberService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private PortalSubscribersDAO portalSubscribersDAO; diff --git a/src/main/resources/admintools.properties b/src/main/resources/admintools.properties index 01e6a0b..fee81cb 100644 --- a/src/main/resources/admintools.properties +++ b/src/main/resources/admintools.properties @@ -50,3 +50,8 @@ admintool.cache.url = https://beta.{community}.openaire.eu/purge/ #admintool.mongodb.database=openaireconnect #admintool.mongodb.username=dnet8480 #admintool.mongodb.password= + +#static properties +api.title = Uoa Admin Tools Documentation Swagger +api.description = Uoa Admin Tools is a service which is saving and serving helptexts and dynamic content +api.version = ${project.version} \ No newline at end of file diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties deleted file mode 100644 index de1e5d7..0000000 --- a/src/main/resources/log4j.properties +++ /dev/null @@ -1,20 +0,0 @@ -log4j.rootLogger = DEBUG, R - -log4j.logger.eu.dnetlib = DEBUG -log4j.logger.org.springframework = DEBUG, S - -log4j.additivity.org.springframework = false - -log4j.appender.R=org.apache.log4j.RollingFileAppender -log4j.appender.R.File=/var/log/dnet/uoa-admin-tools/uoa-admin-tools.log -log4j.appender.R.MaxFileSize=10MB -log4j.appender.R.MaxBackupIndex=10 -log4j.appender.R.layout=org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n - -log4j.appender.S=org.apache.log4j.RollingFileAppender -log4j.appender.S.File=/var/log/dnet/uoa-admin-tools/uoa-admin-tools-spring.log -log4j.appender.S.MaxFileSize=10MB -log4j.appender.S.MaxBackupIndex=10 -log4j.appender.S.layout=org.apache.log4j.PatternLayout -log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..ad623b7 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,39 @@ + + + + + %d %p %t [%c] - %m%n + + + + + + + ${LOG_PATTERN} + + + + + + + + + ${LOG_PATTERN} + + + + + + + + + + + + + + + + \ No newline at end of file