Browse Source

Add health properties check method. Add remove admin role method. Add git info and maven spring-boot plugin in pom

master
parent
commit
95d146228a
  1. 20
      pom.xml
  2. 34
      src/main/java/eu/dnetlib/dnetrolemanagement/controllers/HealthController.java
  3. 23
      src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java
  4. 4
      src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java
  5. 1
      src/main/resources/application.properties

20
pom.xml

@ -15,6 +15,12 @@
<properties>
<java.version>1.8</java.version>
</properties>
<scm>
<url>https://code-repo.d4science.org/MaDgIK/dnet-role-management</url>
<connection>scm:git:gitea@code-repo.d4science.org:MaDgIK/dnet-role-management.git</connection>
<developerConnection>scm:git:gitea@code-repo.d4science.org:MaDgIK/dnet-role-management.git</developerConnection>
<tag>dnet-role-management-1.0.0</tag>
</scm>
<dependencyManagement>
<dependencies>
<dependency>
@ -95,6 +101,20 @@
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>eu.dnetlib.dnetrolemanagement.DnetRoleManagementApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>

34
src/main/java/eu/dnetlib/dnetrolemanagement/controllers/HealthController.java

@ -1,17 +1,51 @@
package eu.dnetlib.dnetrolemanagement.controllers;
import eu.dnetlib.dnetrolemanagement.config.properties.APIProperties;
import eu.dnetlib.dnetrolemanagement.config.properties.RedisProperties;
import eu.dnetlib.dnetrolemanagement.config.properties.RegistryProperties;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class HealthController {
private final Logger log = Logger.getLogger(this.getClass());
private final APIProperties apiProperties;
private final RedisProperties redisProperties;
private final RegistryProperties registryProperties;
@Autowired
public HealthController(APIProperties apiProperties, RedisProperties redisProperties, RegistryProperties registryProperties) {
this.apiProperties = apiProperties;
this.redisProperties = redisProperties;
this.registryProperties = registryProperties;
}
@RequestMapping(value = {"", "/health_check"}, method = RequestMethod.GET)
public String hello() {
log.debug("Hello from role management!");
return "Hello from Role management!";
}
@PreAuthorize("hasAnyAuthority('PORTAL_ADMINISTRATOR')")
@RequestMapping(value = "/health_check/advanced", method = RequestMethod.GET)
public Map<String, String> checkEverything() {
Map<String, String> response = new HashMap<>();
response.put("api.title", apiProperties.getTitle());
response.put("api.description", apiProperties.getDescription());
response.put("api.version", apiProperties.getVersion());
response.put("registry.coid", registryProperties.getCoid());
response.put("registry.issuer", registryProperties.getIssuer());
response.put("registry.user", registryProperties.getUser());
response.put("registry.password", registryProperties.getPassword());
response.put("registry.version", registryProperties.getVersion());
response.put("redis.host", redisProperties.getHost());
return response;
}
}

23
src/main/java/eu/dnetlib/dnetrolemanagement/controllers/SuperAdminController.java

@ -8,7 +8,6 @@ import eu.dnetlib.dnetrolemanagement.utils.AuthoritiesUpdater;
import eu.dnetlib.dnetrolemanagement.utils.AuthoritiesUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@ -70,4 +69,26 @@ public class SuperAdminController {
}
throw new ResourceNotFoundException("User has not been found");
}
/**
* Remove portal admin role from logged in user or user with @email
*/
@RequestMapping(value = "/remove", method = RequestMethod.DELETE)
public ResponseEntity<Response> removeRole( @RequestParam(required = false) String email) {
List<Integer> coPersonIds = registryService.getCoPersonIdsByEmail(email);
if (coPersonIds.size() > 0) {
Integer couId = registryService.getCouId(AuthoritiesUtils.portalAdminRole());
if (couId != null) {
coPersonIds.forEach(coPersonId -> {
String identifier = registryService.getIdentifierByCoPersonId(coPersonId);
Integer role = registryService.getRoleId(coPersonId, couId);
registryService.removeMemberRole(coPersonId, couId, role);
authoritiesUpdater.removeRole(identifier, new SimpleGrantedAuthority(AuthoritiesUtils.portalAdminRole()));
});
return ResponseEntity.ok(new Response("Role has been revoked successfully"));
}
throw new ResourceNotFoundException("Role has not been found");
}
throw new ResourceNotFoundException("User has not been found");
}
}

4
src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java

@ -17,9 +17,9 @@ import java.util.Map;
@Component
public class HttpUtils {
private static final Logger logger = Logger.getLogger(eu.dnetlib.dnetrolemanagement.utils.HttpUtils.class);
private static final Logger logger = Logger.getLogger(HttpUtils.class);
private RegistryProperties registryProperties;
private final RegistryProperties registryProperties;
@Autowired
public HttpUtils(RegistryProperties registryProperties) {

1
src/main/resources/application.properties

@ -1 +0,0 @@
Loading…
Cancel
Save