updating the checkGrantToAccessFarmID
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/performfish-analytics-portlet@178491 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
b2a2aedce5
commit
dfba6ad6bc
|
@ -50,8 +50,10 @@ import org.gcube.portlets.user.performfishanalytics.shared.dataminer.DataMinerRe
|
|||
import org.gcube.portlets.user.performfishanalytics.shared.exceptions.SessionExpired;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.performfishservice.PerformFishInitParameter;
|
||||
import org.gcube.portlets.user.performfishanalytics.shared.performfishservice.PerformFishResponse;
|
||||
import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager;
|
||||
import org.gcube.vomanagement.usermanagement.model.GCubeGroup;
|
||||
import org.gcube.vomanagement.usermanagement.exception.GroupRetrievalFault;
|
||||
import org.gcube.vomanagement.usermanagement.exception.UserRetrievalFault;
|
||||
import org.gcube.vomanagement.usermanagement.impl.LiferayRoleManager;
|
||||
import org.gcube.vomanagement.usermanagement.model.GCubeTeam;
|
||||
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -285,17 +287,31 @@ public class PerformFishAnalyticsServiceImpl extends RemoteServiceServlet
|
|||
if(farmId == -1){
|
||||
throw new Exception("Your input farm ID seems to be not valid. Please contact the D4Science support");
|
||||
}
|
||||
List<GCubeGroup> groups = new LiferayGroupManager().listGroupsByUser(userId);
|
||||
log.debug("Groups retrieved from LR are: "+groups);
|
||||
for (GCubeGroup g : groups) {
|
||||
log.debug("Checking the group id: "+g.getGroupId());
|
||||
if (g.getGroupId() == farmId){
|
||||
log.info("GCubeGroup matching the FARM_ID "+farmId+" found!");
|
||||
|
||||
long groupId;
|
||||
try {
|
||||
groupId = PortalContext.getConfiguration().getCurrentGroupId(this.getThreadLocalRequest());
|
||||
} catch (Exception e) {
|
||||
log.error("Error getting the group id: ",e);
|
||||
throw new Exception("Your input farm ID seems to be not valid. Please contact the D4Science support");
|
||||
}
|
||||
log.debug("The group id is: "+groupId);
|
||||
|
||||
List<GCubeTeam> teams = new ArrayList<>();
|
||||
try {
|
||||
teams = new LiferayRoleManager().listTeamsByUserAndGroup(userId, groupId);
|
||||
} catch (UserRetrievalFault | GroupRetrievalFault e) {
|
||||
log.warn("Error listing the GCubeTeams: ",e);
|
||||
}
|
||||
for (GCubeTeam team : teams) {
|
||||
if (team.getTeamId() == farmId) {
|
||||
log.info(GCubeTeam.class.getSimpleName() +" matching the FARM_ID "+farmId+" FOUND!");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
log.info("GCubeGroup matching the FARM_ID "+farmId+" NOT found!");
|
||||
log.info(GCubeTeam.class.getSimpleName() +" matching the FARM_ID "+farmId+" NOT FOUND!");
|
||||
return false;
|
||||
|
||||
}else{
|
||||
//IN TEST MODE NOT CHECKING NOTHING
|
||||
log.info("I'm in testing mode, grant the rights to access the farmID {} for current user",farmID);
|
||||
|
|
Loading…
Reference in New Issue