diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java b/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java index b1a50e373..fc1975f82 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/Admin.java @@ -5,7 +5,10 @@ import java.util.UUID; import eu.eudat.dao.entities.*; import eu.eudat.managers.DashBoardManager; import eu.eudat.models.dashboard.DashBoardStatistics; +import eu.eudat.models.security.Principal; +import eu.eudat.security.claims.ClaimedAuthorities; import eu.eudat.services.ApiContext; +import eu.eudat.types.Authorities; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.http.HttpStatus; @@ -23,55 +26,57 @@ import eu.eudat.models.admin.composite.DatasetProfile; import javax.transaction.Transactional; import javax.validation.Valid; +import static eu.eudat.types.Authorities.ADMIN; + @RestController @CrossOrigin -public class Admin extends BaseController{ +public class Admin extends BaseController { - @Autowired - public Admin(ApiContext apiContext) { - super(apiContext); - } + @Autowired + public Admin(ApiContext apiContext) { + super(apiContext); + } - @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/admin/addDmp" },consumes = "application/json", produces="application/json") - public ResponseEntity addDmp(@Valid @RequestBody DatasetProfile profile){ - try{ - eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateViewStyleDefinition(profile); - this.getApiContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); - return ResponseEntity.status(HttpStatus.OK).body(modelDefinition.getId()); - }catch(Exception ex){ - ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("{\"reason\":\""+ex.getMessage()+"\"}"); - } - } - - @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/admin/addDmp/{id}" },consumes = "application/json", produces="application/json") - public ResponseEntity updateDmp(@PathVariable String id,@RequestBody DatasetProfile profile){ - try{ - eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateViewStyleDefinition(profile); + @Transactional + @RequestMapping(method = RequestMethod.POST, value = {"/admin/addDmp"}, consumes = "application/json", produces = "application/json") + public ResponseEntity addDmp(@Valid @RequestBody DatasetProfile profile, @ClaimedAuthorities(claims = {ADMIN}) Principal principal) { + try { + eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateViewStyleDefinition(profile); + this.getApiContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(modelDefinition); + return ResponseEntity.status(HttpStatus.OK).body(modelDefinition.getId()); + } catch (Exception ex) { + ex.printStackTrace(); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("{\"reason\":\"" + ex.getMessage() + "\"}"); + } + } - eu.eudat.entities.DatasetProfile datasetprofile = this.getApiContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); - datasetprofile.setDefinition(modelDefinition.getDefinition()); - this.getApiContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(datasetprofile); - - return ResponseEntity.status(HttpStatus.OK).body(null); - }catch(Exception ex){ - ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("{\"reason\":\""+ex.getMessage()+"\"}"); - } - } - - @RequestMapping(method = RequestMethod.GET, value = { "/admin/get/{id}" }, produces="application/json") - public ResponseEntity get(@PathVariable String id){ - try{ - eu.eudat.entities.DatasetProfile profile = this.getApiContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); - eu.eudat.models.admin.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile); - datasetprofile.setLabel(profile.getLabel()); - return ResponseEntity.status(HttpStatus.OK).body(datasetprofile); - }catch(Exception ex){ - ex.printStackTrace(); - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("{\"reason\":\""+ex.getMessage()+"\"}"); - } - } + @Transactional + @RequestMapping(method = RequestMethod.POST, value = {"/admin/addDmp/{id}"}, consumes = "application/json", produces = "application/json") + public ResponseEntity updateDmp(@PathVariable String id, @RequestBody DatasetProfile profile, @ClaimedAuthorities(claims = {ADMIN}) Principal principal) { + try { + eu.eudat.entities.DatasetProfile modelDefinition = AdminManager.generateViewStyleDefinition(profile); + + eu.eudat.entities.DatasetProfile datasetprofile = this.getApiContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); + datasetprofile.setDefinition(modelDefinition.getDefinition()); + this.getApiContext().getDatabaseRepository().getDatasetProfileDao().createOrUpdate(datasetprofile); + + return ResponseEntity.status(HttpStatus.OK).body(null); + } catch (Exception ex) { + ex.printStackTrace(); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("{\"reason\":\"" + ex.getMessage() + "\"}"); + } + } + + @RequestMapping(method = RequestMethod.GET, value = {"/admin/get/{id}"}, produces = "application/json") + public ResponseEntity get(@PathVariable String id, @ClaimedAuthorities(claims = {ADMIN}) Principal principal) { + try { + eu.eudat.entities.DatasetProfile profile = this.getApiContext().getDatabaseRepository().getDatasetProfileDao().find(UUID.fromString(id)); + eu.eudat.models.admin.composite.DatasetProfile datasetprofile = AdminManager.generateDatasetProfileModel(profile); + datasetprofile.setLabel(profile.getLabel()); + return ResponseEntity.status(HttpStatus.OK).body(datasetprofile); + } catch (Exception ex) { + ex.printStackTrace(); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("{\"reason\":\"" + ex.getMessage() + "\"}"); + } + } } diff --git a/dmp-backend/src/main/java/eu/eudat/controllers/Login.java b/dmp-backend/src/main/java/eu/eudat/controllers/Login.java index 5ab456789..c311d4b27 100644 --- a/dmp-backend/src/main/java/eu/eudat/controllers/Login.java +++ b/dmp-backend/src/main/java/eu/eudat/controllers/Login.java @@ -40,35 +40,36 @@ public class Login { } @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/externallogin" }, consumes = "application/json", produces="application/json") - public @ResponseBody ResponseEntity> externallogin(@RequestBody LoginInfo credentials) { + @RequestMapping(method = RequestMethod.POST, value = {"/externallogin"}, consumes = "application/json", produces = "application/json") + public @ResponseBody + ResponseEntity> externallogin(@RequestBody LoginInfo credentials) { try { return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(customAuthenticationProvider.authenticate(credentials)).status(ApiMessageCode.SUCCESS_MESSAGE)); - }catch (UnauthorisedException ex){ + } catch (UnauthorisedException ex) { throw ex; - } - catch (Exception ex) { + } catch (Exception ex) { ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); } } @Transactional - @RequestMapping(method = RequestMethod.POST, value = { "/nativelogin" }, consumes = "application/json", produces="application/json") - public @ResponseBody ResponseEntity> nativelogin(@RequestBody Credentials credentials) { + @RequestMapping(method = RequestMethod.POST, value = {"/nativelogin"}, consumes = "application/json", produces = "application/json") + public @ResponseBody + ResponseEntity> nativelogin(@RequestBody Credentials credentials) { try { - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(UserManager.authenticate(this.authenticationService,credentials)).status(ApiMessageCode.SUCCESS_MESSAGE)); - }catch (UnauthorisedException ex){ + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(UserManager.authenticate(this.authenticationService, credentials)).status(ApiMessageCode.SUCCESS_MESSAGE)); + } catch (UnauthorisedException ex) { throw ex; - } - catch (Exception ex) { + } catch (Exception ex) { ex.printStackTrace(); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.DEFAULT_ERROR_MESSAGE).message(ex.getMessage())); } } - @RequestMapping(method = RequestMethod.GET, value = { "/twitterRequestToken" }, produces="application/json") - public @ResponseBody ResponseEntity> twitterRequestToken() { + @RequestMapping(method = RequestMethod.GET, value = {"/twitterRequestToken"}, produces = "application/json") + public @ResponseBody + ResponseEntity> twitterRequestToken() { try { return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(this.twitterTokenValidator.getRequestToken()).status(ApiMessageCode.NO_MESSAGE)); } catch (Exception ex) { @@ -77,8 +78,9 @@ public class Login { } } - @RequestMapping(method = RequestMethod.POST, value = { "/me" }, consumes = "application/json", produces="application/json") - public @ResponseBody ResponseEntity> authMe(Principal principal) { + @RequestMapping(method = RequestMethod.POST, value = {"/me"}, consumes = "application/json", produces = "application/json") + public @ResponseBody + ResponseEntity> authMe(Principal principal) { try { return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(this.authenticationService.Touch(principal.getToken())).status(ApiMessageCode.NO_MESSAGE)); @@ -88,8 +90,9 @@ public class Login { } } - @RequestMapping(method = RequestMethod.POST, value = { "/logout" }, consumes = "application/json", produces="application/json") - public @ResponseBody ResponseEntity> logout(Principal principal) { + @RequestMapping(method = RequestMethod.POST, value = {"/logout"}, consumes = "application/json", produces = "application/json") + public @ResponseBody + ResponseEntity> logout(Principal principal) { try { this.authenticationService.Logout(principal.getToken()); return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().status(ApiMessageCode.NO_MESSAGE));