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.handlers.EntityNotFoundException;
|
||||
import eu.dnetlib.uoaadmintoolslibrary.handlers.ForbiddenException;
|
||||
import eu.dnetlib.uoamonitorservice.service.StakeholderService;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -25,6 +26,9 @@ public class StakeholderController {
|
|||
@Autowired
|
||||
private RolesUtils rolesUtils;
|
||||
|
||||
@Autowired
|
||||
private StakeholderService stakeholderService;
|
||||
|
||||
@Autowired
|
||||
private StakeholderDAO stakeholderDAO;
|
||||
|
||||
|
@ -349,104 +353,17 @@ public class StakeholderController {
|
|||
@RequestMapping(value = "/stakeholder", method = RequestMethod.GET)
|
||||
public List<Stakeholder> getAllRealStakeholders(@RequestParam(required = false) String type,
|
||||
@RequestParam(required = false) String defaultId) {
|
||||
// log.debug("get all NOT default stakeholders" + (type != null ? " with type: "+type : ""));
|
||||
|
||||
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;
|
||||
return stakeholderService.getStakeholdersByTypeAndRole(type, defaultId, false);
|
||||
}
|
||||
|
||||
@PreAuthorize("isAuthenticated()")
|
||||
@RequestMapping(value = "/my-stakeholder", method = RequestMethod.GET)
|
||||
public List<Stakeholder> getMyRealStakeholders(@RequestParam(required = false) String type) {
|
||||
// log.debug("get my NOT default stakeholders" + (type != null ? " with type: "+type : ""));
|
||||
|
||||
List<Stakeholder> stakeholders;
|
||||
if(type == null) {
|
||||
stakeholders = stakeholderDAO.findByDefaultIdNot(null);
|
||||
} else {
|
||||
stakeholders = stakeholderDAO.findByDefaultIdNotAndType(null, type);
|
||||
return stakeholderService.getStakeholdersByTypeAndRole(type, null, true);
|
||||
}
|
||||
|
||||
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) {
|
||||
// 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