Move some stakeholder functions to the service.
This commit is contained in:
parent
4be89eab36
commit
e92739091f
|
@ -7,6 +7,7 @@ import eu.dnetlib.uoamonitorservice.dao.*;
|
||||||
import eu.dnetlib.uoamonitorservice.entities.*;
|
import eu.dnetlib.uoamonitorservice.entities.*;
|
||||||
import eu.dnetlib.uoamonitorservice.handlers.EntityNotFoundException;
|
import eu.dnetlib.uoamonitorservice.handlers.EntityNotFoundException;
|
||||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
|
||||||
|
import eu.dnetlib.uoamonitorservice.service.StakeholderService;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -25,6 +26,9 @@ public class StakeholderController {
|
||||||
@Autowired
|
@Autowired
|
||||||
private RolesUtils rolesUtils;
|
private RolesUtils rolesUtils;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StakeholderService stakeholderService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private StakeholderDAO stakeholderDAO;
|
private StakeholderDAO stakeholderDAO;
|
||||||
|
|
||||||
|
@ -349,104 +353,17 @@ public class StakeholderController {
|
||||||
@RequestMapping(value = "/stakeholder", method = RequestMethod.GET)
|
@RequestMapping(value = "/stakeholder", method = RequestMethod.GET)
|
||||||
public List<Stakeholder> getAllRealStakeholders(@RequestParam(required = false) String type,
|
public List<Stakeholder> getAllRealStakeholders(@RequestParam(required = false) String type,
|
||||||
@RequestParam(required = false) String defaultId) {
|
@RequestParam(required = false) String defaultId) {
|
||||||
// log.debug("get all NOT default stakeholders" + (type != null ? " with type: "+type : ""));
|
return stakeholderService.getStakeholdersByTypeAndRole(type, defaultId, false);
|
||||||
|
|
||||||
List<Stakeholder> stakeholders;
|
|
||||||
if(type != null && defaultId != null) {
|
|
||||||
stakeholders = stakeholderDAO.findByDefaultIdAndType(defaultId, type);
|
|
||||||
} else if(defaultId != null) {
|
|
||||||
stakeholders = stakeholderDAO.findByDefaultId(defaultId);
|
|
||||||
} else if(type != null) {
|
|
||||||
stakeholders = stakeholderDAO.findByDefaultIdNotAndType(null, type);
|
|
||||||
} else {
|
|
||||||
stakeholders = stakeholderDAO.findByDefaultIdNot(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
//List<Stakeholder> stakeholdersFull = new ArrayList<>();
|
|
||||||
|
|
||||||
if(stakeholders != null && stakeholders.size() > 0) {
|
|
||||||
// List<String> roles = authorizationService.getRoles();
|
|
||||||
// if (roles.contains(authorizationService.PORTAL_ADMIN)) {
|
|
||||||
if (rolesUtils.isPortalAdmin()) {
|
|
||||||
// for(Stakeholder stakeholder : stakeholders) {
|
|
||||||
// stakeholdersFull.add(this.setFullEntities(stakeholder));
|
|
||||||
// }
|
|
||||||
// return stakeholdersFull;
|
|
||||||
return stakeholders;
|
|
||||||
}
|
|
||||||
|
|
||||||
Iterator<Stakeholder> stakeholderIterator = stakeholders.iterator();
|
|
||||||
while(stakeholderIterator.hasNext()) {
|
|
||||||
Stakeholder stakeholder = stakeholderIterator.next();
|
|
||||||
|
|
||||||
// if(roles.contains(authorizationService.curator(stakeholder.getType()))
|
|
||||||
// || roles.contains(authorizationService.manager(stakeholder.getType(), stakeholder.getAlias()))
|
|
||||||
// || stakeholder.getVisibility() == Visibility.PUBLIC
|
|
||||||
// || (stakeholder.getVisibility() == Visibility.RESTRICTED && roles.contains(authorizationService.member(stakeholder.getType(), stakeholder.getAlias())))) {
|
|
||||||
if(rolesUtils.isCurator(stakeholder.getType())
|
|
||||||
|| rolesUtils.isManager(stakeholder.getType(), stakeholder.getAlias())
|
|
||||||
|| stakeholder.getVisibility() == Visibility.PUBLIC
|
|
||||||
|| stakeholder.getVisibility() == Visibility.RESTRICTED) {
|
|
||||||
// || (stakeholder.getVisibility() == Visibility.RESTRICTED && rolesUtils.isMember(roles, stakeholder.getType(), stakeholder.getAlias()))) {
|
|
||||||
//stakeholdersFull.add(this.setFullEntities(stakeholder));
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
stakeholderIterator.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// log.debug(new Date());
|
|
||||||
|
|
||||||
// return stakeholdersFull;
|
|
||||||
return stakeholders;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreAuthorize("isAuthenticated()")
|
@PreAuthorize("isAuthenticated()")
|
||||||
@RequestMapping(value = "/my-stakeholder", method = RequestMethod.GET)
|
@RequestMapping(value = "/my-stakeholder", method = RequestMethod.GET)
|
||||||
public List<Stakeholder> getMyRealStakeholders(@RequestParam(required = false) String type) {
|
public List<Stakeholder> getMyRealStakeholders(@RequestParam(required = false) String type) {
|
||||||
// log.debug("get my NOT default stakeholders" + (type != null ? " with type: "+type : ""));
|
// log.debug("get my NOT default stakeholders" + (type != null ? " with type: "+type : ""));
|
||||||
|
return stakeholderService.getStakeholdersByTypeAndRole(type, null, true);
|
||||||
List<Stakeholder> stakeholders;
|
|
||||||
if(type == null) {
|
|
||||||
stakeholders = stakeholderDAO.findByDefaultIdNot(null);
|
|
||||||
} else {
|
|
||||||
stakeholders = stakeholderDAO.findByDefaultIdNotAndType(null, type);
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Stakeholder> stakeholdersFull = new ArrayList<>();
|
|
||||||
|
|
||||||
if(stakeholders != null && stakeholders.size() > 0) {
|
|
||||||
// if (roles.contains(authorizationService.PORTAL_ADMIN)) {
|
|
||||||
if (rolesUtils.isPortalAdmin()) {
|
|
||||||
// for(Stakeholder stakeholder : stakeholders) {
|
|
||||||
// stakeholdersFull.add(this.setFullEntities(stakeholder, roles));
|
|
||||||
// }
|
|
||||||
// return stakeholdersFull;
|
|
||||||
return stakeholders;
|
|
||||||
}
|
|
||||||
|
|
||||||
Iterator<Stakeholder> stakeholderIterator = stakeholders.iterator();
|
|
||||||
while(stakeholderIterator.hasNext()) {
|
|
||||||
Stakeholder stakeholder = stakeholderIterator.next();
|
|
||||||
|
|
||||||
// if(roles.contains(authorizationService.curator(stakeholder.getType()))
|
|
||||||
// || roles.contains(authorizationService.manager(stakeholder.getType(), stakeholder.getAlias()))) {
|
|
||||||
if(rolesUtils.isCurator(stakeholder.getType())
|
|
||||||
|| rolesUtils.isManager(stakeholder.getType(), stakeholder.getAlias())) {
|
|
||||||
//stakeholdersFull.add(this.setFullEntities(stakeholder, roles));
|
|
||||||
continue;
|
|
||||||
} else {
|
|
||||||
stakeholderIterator.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// log.debug(new Date());
|
|
||||||
|
|
||||||
return stakeholders;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/stakeholder/{alias}", method = RequestMethod.GET)
|
@RequestMapping(value = "/stakeholder/{alias:.+}", method = RequestMethod.GET)
|
||||||
public Stakeholder getStakeholder(@PathVariable("alias") String alias) {
|
public Stakeholder getStakeholder(@PathVariable("alias") String alias) {
|
||||||
// log.debug("get stakeholder: "+alias);
|
// log.debug("get stakeholder: "+alias);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
package eu.dnetlib.uoamonitorservice.service;
|
||||||
|
|
||||||
|
import eu.dnetlib.uoaadmintoolslibrary.handlers.utils.RolesUtils;
|
||||||
|
import eu.dnetlib.uoamonitorservice.dao.StakeholderDAO;
|
||||||
|
import eu.dnetlib.uoamonitorservice.entities.Stakeholder;
|
||||||
|
import eu.dnetlib.uoamonitorservice.entities.Visibility;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class StakeholderService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
StakeholderDAO dao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
RolesUtils rolesUtils;
|
||||||
|
|
||||||
|
public List<Stakeholder> getStakeholdersByTypeAndRole(String type, String defaultId, boolean manage) {
|
||||||
|
List<Stakeholder> stakeholders;
|
||||||
|
if(type != null && defaultId != null) {
|
||||||
|
stakeholders = dao.findByDefaultIdAndType(defaultId, type);
|
||||||
|
} else if(defaultId != null) {
|
||||||
|
stakeholders = dao.findByDefaultId(defaultId);
|
||||||
|
} else if(type != null) {
|
||||||
|
stakeholders = dao.findByDefaultIdNotAndType(null, type);
|
||||||
|
} else {
|
||||||
|
stakeholders = dao.findByDefaultIdNot(null);
|
||||||
|
}
|
||||||
|
return stakeholders.stream().filter(stakeholder ->
|
||||||
|
(!manage &&
|
||||||
|
(stakeholder.getVisibility() == Visibility.PUBLIC
|
||||||
|
|| stakeholder.getVisibility() == Visibility.RESTRICTED))
|
||||||
|
|| rolesUtils.isPortalAdmin()
|
||||||
|
|| rolesUtils.isCurator(stakeholder.getType())
|
||||||
|
|| rolesUtils.isManager(stakeholder.getType(), stakeholder.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue