alpha test is passed
This commit is contained in:
parent
5cb7bbb3a1
commit
bc5f309fc5
|
@ -1,10 +1,18 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
|
||||||
<wb-module deploy-name="UsersManagementPortlet">
|
|
||||||
|
<wb-module deploy-name="UsersManagementPortlet-portlet">
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||||
|
|
||||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||||
|
|
||||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||||
<property name="context-root" value="UsersManagementPortlet"/>
|
|
||||||
<property name="java-output-path" value="/UsersManagementPortlet/target/classes"/>
|
<property name="java-output-path" value="/UsersManagementPortlet/target/classes"/>
|
||||||
|
<property name="context-root" value="UsersManagementPortlet-portlet"/>
|
||||||
|
|
||||||
</wb-module>
|
</wb-module>
|
||||||
|
|
||||||
</project-modules>
|
</project-modules>
|
||||||
|
|
|
@ -2,8 +2,14 @@ package gr.cite.bluebridge.portlets.admin.usersmanagementportlet;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
import java.util.stream.Collector;
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.portlet.GenericPortlet;
|
import javax.portlet.GenericPortlet;
|
||||||
|
@ -16,15 +22,14 @@ import javax.portlet.ResourceRequest;
|
||||||
import javax.portlet.ResourceResponse;
|
import javax.portlet.ResourceResponse;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserRolesModifiedForGroup;
|
|
||||||
import org.gcube.common.portal.PortalContext;
|
import org.gcube.common.portal.PortalContext;
|
||||||
|
import org.gcube.portal.mailing.message.EmailAddress;
|
||||||
|
import org.gcube.portal.mailing.message.Recipient;
|
||||||
|
import org.gcube.portal.mailing.message.RecipientType;
|
||||||
import org.gcube.portal.mailing.service.EmailTemplateService;
|
import org.gcube.portal.mailing.service.EmailTemplateService;
|
||||||
import org.gcube.portal.mailing.templates.TemplateUserApprovedRequestVRE;
|
import org.gcube.portal.mailing.templates.TemplateUserApprovedRequestVRE;
|
||||||
import org.gcube.portal.mailing.templates.TemplateUserHasBeenUnregisteredVRE;
|
import org.gcube.portal.mailing.templates.TemplateUserHasBeenUnregisteredVRE;
|
||||||
import org.gcube.portal.mailing.templates.TemplateUserRejectedRequestVRE;
|
import org.gcube.portal.mailing.templates.TemplateUserRejectedRequestVRE;
|
||||||
import org.gcube.portal.mailing.message.EmailAddress;
|
|
||||||
import org.gcube.portal.mailing.message.Recipient;
|
|
||||||
import org.gcube.portal.mailing.message.RecipientType;
|
|
||||||
import org.gcube.vomanagement.usermanagement.GroupManager;
|
import org.gcube.vomanagement.usermanagement.GroupManager;
|
||||||
import org.gcube.vomanagement.usermanagement.RoleManager;
|
import org.gcube.vomanagement.usermanagement.RoleManager;
|
||||||
import org.gcube.vomanagement.usermanagement.UserManager;
|
import org.gcube.vomanagement.usermanagement.UserManager;
|
||||||
|
@ -57,6 +62,7 @@ import com.liferay.portal.util.PortalUtil;
|
||||||
|
|
||||||
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserHasBeenAssociatedWithGCubeTeam;
|
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserHasBeenAssociatedWithGCubeTeam;
|
||||||
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserHasBeenDissAssociatedWithGCubeTeam;
|
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserHasBeenDissAssociatedWithGCubeTeam;
|
||||||
|
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserRolesModifiedForGroup;
|
||||||
|
|
||||||
public class UsersManagementPortletHome extends GenericPortlet {
|
public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
protected String viewTemplate;
|
protected String viewTemplate;
|
||||||
|
@ -72,11 +78,10 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
private static final int REFRESH_SITE_TEAMS_TABLE = 2;
|
private static final int REFRESH_SITE_TEAMS_TABLE = 2;
|
||||||
private static final int EDIT_SITE_TEAMS_TABLE = 1;
|
private static final int EDIT_SITE_TEAMS_TABLE = 1;
|
||||||
private static final int DELETE_SITE_TEAMS_TABLE = 0;
|
private static final int DELETE_SITE_TEAMS_TABLE = 0;
|
||||||
private static final int MASS_EDIT_USERS = 0;
|
|
||||||
private static final int ASSIGN_ROLES_TO_USERS = 1;
|
private static final int ASSIGN_ROLES_TO_USERS = 1;
|
||||||
private static final int REMOVE_ROLES_TO_USERS = 3;
|
private static final int REMOVE_ROLES_TO_USERS = 3;
|
||||||
private static final int ASSIGN_TEAMS_TO_USERS = 2;
|
private static final int ASSIGN_TEAMS_TO_USERS = 2;
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
viewTemplate = getInitParameter("view-template");
|
viewTemplate = getInitParameter("view-template");
|
||||||
}
|
}
|
||||||
|
@ -385,14 +390,14 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
|
|
||||||
if(users.size() > 0){
|
if(users.size() > 0){
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||||
|
|
||||||
_log.debug("There are " + users.size() + " users in the group: " + groupName);
|
_log.debug("There are " + users.size() + " users in the group: " + groupName);
|
||||||
for(GCubeUser someUser : users){
|
for(GCubeUser someUser : users){
|
||||||
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
||||||
try{
|
try{
|
||||||
List<GCubeMembershipRequest> gcmrs = lm.getMembershipRequests(someUser.getUserId(), groupId, MembershipRequestStatus.APPROVED);
|
List<GCubeMembershipRequest> gcmrs = lm.getMembershipRequests(someUser.getUserId(), groupId, MembershipRequestStatus.APPROVED);
|
||||||
GCubeMembershipRequest mr = gcmrs.get(gcmrs.size()-1);
|
GCubeMembershipRequest mr = gcmrs.get(gcmrs.size()-1);
|
||||||
|
|
||||||
jo.put("requestDate", dateFormat.format(mr.getCreateDate()));
|
jo.put("requestDate", dateFormat.format(mr.getCreateDate()));
|
||||||
jo.put("RequestDateObject", mr.getCreateDate());
|
jo.put("RequestDateObject", mr.getCreateDate());
|
||||||
jo.put("validationDate", dateFormat.format(mr.getReplyDate()));
|
jo.put("validationDate", dateFormat.format(mr.getReplyDate()));
|
||||||
|
@ -458,7 +463,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
_log.debug(reqs.size() + " requests for: " + groupName);
|
_log.debug(reqs.size() + " requests for: " + groupName);
|
||||||
if(reqs.size() > 0) {
|
if(reqs.size() > 0) {
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||||
|
|
||||||
for(GCubeMembershipRequest gcmr : reqs){
|
for(GCubeMembershipRequest gcmr : reqs){
|
||||||
if(gcmr.getStatus() == MembershipRequestStatus.REQUEST){
|
if(gcmr.getStatus() == MembershipRequestStatus.REQUEST){
|
||||||
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
||||||
|
@ -509,7 +514,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
_log.debug("Displaying rejected membership requests for the group: " + groupName);
|
_log.debug("Displaying rejected membership requests for the group: " + groupName);
|
||||||
try{
|
try{
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||||
|
|
||||||
reqs = lm.listMembershipRequestsByGroup(groupId);
|
reqs = lm.listMembershipRequestsByGroup(groupId);
|
||||||
if(reqs.size() > 0){
|
if(reqs.size() > 0){
|
||||||
for(GCubeMembershipRequest gcmr : reqs){
|
for(GCubeMembershipRequest gcmr : reqs){
|
||||||
|
@ -545,30 +550,143 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
return ja;
|
return ja;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* manage the assignment to teams
|
||||||
|
* @param groupId
|
||||||
|
* @param usersIDs
|
||||||
|
* @param usersTeams
|
||||||
|
* @param selfId
|
||||||
|
* @param request
|
||||||
|
*/
|
||||||
|
private void assignRemoveUserToTeams(LiferayRoleManager lrm, GCubeUser gcu, Long groupId, String groupName, long[] usersIDs, String[] usersTeams, long selfId, HttpServletRequest httpServletRequest) throws Exception {
|
||||||
|
long[] gCubeTeamIDs = new long[usersTeams.length];
|
||||||
|
String[] gCubeTeamNames = new String[usersTeams.length];
|
||||||
|
StringBuffer teamNames = new StringBuffer();
|
||||||
|
|
||||||
|
LiferayGroupManager lgm = new LiferayGroupManager();
|
||||||
|
LiferayUserManager lum = new LiferayUserManager();
|
||||||
|
|
||||||
|
for (int i=0; i<usersTeams.length; i++) {
|
||||||
|
GCubeTeam team = null;
|
||||||
|
try {
|
||||||
|
team = lrm.getTeam(groupId, usersTeams[i].trim());
|
||||||
|
gCubeTeamIDs[i] = team.getTeamId();
|
||||||
|
gCubeTeamNames[i] = team.getTeamName();
|
||||||
|
if (i != usersTeams.length-1) {
|
||||||
|
teamNames.append(gCubeTeamNames[i]).append(", ");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
teamNames.append(gCubeTeamNames[i]);
|
||||||
|
}
|
||||||
|
_log.debug("Succeeded at retrieving team with name: " + usersTeams[i].trim() + " for the group: "+ groupName);
|
||||||
|
} catch (TeamRetrievalFault e1) {
|
||||||
|
_log.debug("Failed at retrieving team with name: " + usersTeams[i].trim() + " for the group: "+ groupName);
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
List<GCubeTeam> oldUserTeams = lrm.listTeamsByUserAndGroup(gcu.getUserId(), groupId);
|
||||||
|
List<Long> oldUserTeamsIDs = new ArrayList<Long>();
|
||||||
|
for(Iterator<GCubeTeam> it = oldUserTeams.iterator(); it.hasNext();) {
|
||||||
|
GCubeTeam gct = it.next();
|
||||||
|
oldUserTeamsIDs.add(gct.getTeamId());
|
||||||
|
}
|
||||||
|
List<GCubeTeam> newUserTeams = new ArrayList<GCubeTeam>();
|
||||||
|
List<Long> newUserTeamsIDs = new ArrayList<Long>();
|
||||||
|
|
||||||
|
for(long gCubeTeamID : gCubeTeamIDs) {
|
||||||
|
GCubeTeam gct = lrm.getTeam(gCubeTeamID);
|
||||||
|
newUserTeams.add(gct);
|
||||||
|
newUserTeamsIDs.add(gCubeTeamID);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<GCubeTeam> newTeamsToBeAssociatedWith = new ArrayList<GCubeTeam>(newUserTeams);
|
||||||
|
List<Long> newTeamsIDsToBeAssociatedWith = new ArrayList<Long>(newUserTeamsIDs);
|
||||||
|
|
||||||
|
newUserTeams.removeAll(oldUserTeams);
|
||||||
|
newUserTeamsIDs.removeAll(oldUserTeamsIDs);
|
||||||
|
|
||||||
|
for(Long gctID : newUserTeamsIDs){
|
||||||
|
lrm.assignTeamToUser(gcu.getUserId(), gctID);
|
||||||
|
GCubeTeam gct = lrm.getTeam(gctID);
|
||||||
|
notifyUsersByEmailOnTeamAssignment(groupId, gcu, lum.getUserById(selfId), lgm.getGroup(groupId), httpServletRequest, gct);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(newUserTeamsIDs.size() > 0)
|
||||||
|
_log.debug("User: " + gcu.getUsername() + " was added to following teams: " + teamNames);
|
||||||
|
else
|
||||||
|
_log.debug("User: " + gcu.getUsername() + " was added to no new teams");
|
||||||
|
|
||||||
|
oldUserTeams.removeAll(newTeamsToBeAssociatedWith);
|
||||||
|
oldUserTeamsIDs.removeAll(newTeamsIDsToBeAssociatedWith);
|
||||||
|
List<Long> teamsIDsToBeDisassociatedFrom = new ArrayList<Long>(oldUserTeamsIDs);
|
||||||
|
if(teamsIDsToBeDisassociatedFrom.size() != 0) {
|
||||||
|
List<GCubeTeam> teamsToBeDisassociatedFrom = new ArrayList<GCubeTeam>();
|
||||||
|
for(Iterator<Long> it = teamsIDsToBeDisassociatedFrom.iterator(); it.hasNext();){
|
||||||
|
teamsToBeDisassociatedFrom.add(lrm.getTeam(it.next()));
|
||||||
|
}
|
||||||
|
|
||||||
|
lrm.deleteUserTeams(gcu.getUserId(), teamsToBeDisassociatedFrom);
|
||||||
|
|
||||||
|
for(int i = 0; i < teamsToBeDisassociatedFrom.size(); i++) {
|
||||||
|
|
||||||
|
notifyUsersByEmailOnTeamDismissal(groupId, gcu, lum.getUserById(selfId), lgm.getGroup(groupId), httpServletRequest, teamsToBeDisassociatedFrom.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (TeamRetrievalFault e) {
|
||||||
|
_log.debug("User: " + gcu.getUsername() + " failed to be added to the following teams: " + teamNames);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param groupId
|
||||||
|
* @param usersIDs
|
||||||
|
* @param theRoles
|
||||||
|
* @param usersTeams
|
||||||
|
* @param deletePreviousRoles
|
||||||
|
* @param selfId
|
||||||
|
* @param typeOfChangesUpponUserMode
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
* @throws SystemException
|
||||||
|
* @throws PortalException
|
||||||
|
* @throws UserManagementSystemException
|
||||||
|
* @throws UserRetrievalFault
|
||||||
|
* @throws RoleRetrievalFault
|
||||||
|
* @throws GroupRetrievalFault
|
||||||
|
*/
|
||||||
protected JSONArray usersForCurrrentUsersTablePlusRoles( Long groupId,
|
protected JSONArray usersForCurrrentUsersTablePlusRoles( Long groupId,
|
||||||
long[] usersIDs, String[] theRoles, String[] usersTeams,
|
long[] usersIDs, String[] theRoles, String[] usersTeams,
|
||||||
boolean deletePreviousRoles, long selfId, int typeOfChangesUpponUserMode,
|
boolean deletePreviousRoles, long selfId, int typeOfChangesUpponUserMode,
|
||||||
ResourceRequest request
|
ResourceRequest request
|
||||||
) throws SystemException, PortalException, UserManagementSystemException, UserRetrievalFault, RoleRetrievalFault, GroupRetrievalFault{
|
) throws SystemException, PortalException, UserManagementSystemException, UserRetrievalFault, RoleRetrievalFault, GroupRetrievalFault{
|
||||||
LiferayGroupManager lgm = new LiferayGroupManager();
|
|
||||||
String groupName = lgm.getGroup(groupId).getGroupName();
|
|
||||||
|
|
||||||
|
|
||||||
|
LiferayGroupManager lgm = new LiferayGroupManager();
|
||||||
LiferayRoleManager lrm = new LiferayRoleManager();
|
LiferayRoleManager lrm = new LiferayRoleManager();
|
||||||
LiferayUserManager lum = new LiferayUserManager();
|
LiferayUserManager lum = new LiferayUserManager();
|
||||||
|
String groupName = lgm.getGroup(groupId).getGroupName();
|
||||||
|
|
||||||
HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request);
|
HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request);
|
||||||
|
|
||||||
_log.debug("*** \n\n Editing users for the context: " + groupName);
|
_log.debug("Editing users for the context: " + groupName);
|
||||||
System.out.println("\n\n****");
|
|
||||||
System.out.println("long[] usersIDs="+usersIDs.toString());
|
|
||||||
System.out.println("String[] theRoles="+theRoles.toString());
|
_log.debug("String[] theRoles length?="+theRoles.length);
|
||||||
System.out.println("deletePreviousRoles?="+deletePreviousRoles);
|
for (int i = 0; i < theRoles.length; i++) {
|
||||||
System.out.println("selfId="+selfId);
|
_log.debug("role: "+theRoles[i]);
|
||||||
System.out.println("int typeOfChangesUpponUserMode is="+typeOfChangesUpponUserMode);
|
}
|
||||||
|
_log.debug("String[] usersTeams length?="+usersTeams.length);
|
||||||
System.out.println("usersIDs.length="+usersIDs.length);
|
for (int i = 0; i < usersTeams.length; i++) {
|
||||||
|
_log.debug("team: "+usersTeams[i]);
|
||||||
if(usersIDs.length == 1) {//You can delete previous roles of a single user only.
|
}
|
||||||
|
_log.debug("Number of operation ((1:assign role, 2: assign/remove group, 3:revoke role) is ="+typeOfChangesUpponUserMode);
|
||||||
|
_log.debug("usersIDs.length="+usersIDs.length);
|
||||||
|
|
||||||
|
if(usersIDs.length == 1) {// SINGLE USER EDIT, support assignment and removal of roles and groups
|
||||||
GCubeUser gcu = lum.getUserById(usersIDs[0]);
|
GCubeUser gcu = lum.getUserById(usersIDs[0]);
|
||||||
long[] roleIDs = new long[theRoles.length];
|
long[] roleIDs = new long[theRoles.length];
|
||||||
GCubeRole[] gCubeRoles = new GCubeRole[theRoles.length];
|
GCubeRole[] gCubeRoles = new GCubeRole[theRoles.length];
|
||||||
|
@ -581,140 +699,65 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
newRoleIDs[i] = gCubeRoles[i].getRoleId();
|
newRoleIDs[i] = gCubeRoles[i].getRoleId();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(typeOfChangesUpponUserMode == REMOVE_ROLES_TO_USERS){
|
List<GCubeRole> rolesComingFromTheUI = gCubeRoles.length > 0 ? Arrays.asList(gCubeRoles) : new ArrayList<GCubeRole>();
|
||||||
System.out.println("\n\n\n ****** REMOVE_ROLES_TO_USERS");
|
_log.info("roles Coming From The UI");
|
||||||
|
rolesComingFromTheUI.forEach(role -> _log.info("Role UI: " + role.getRoleName()));
|
||||||
}
|
List<Long> roleIdsComingFromTheUICopy = new ArrayList<Long>();
|
||||||
else if(typeOfChangesUpponUserMode == ASSIGN_ROLES_TO_USERS){
|
List<Long> roleIdsComingFromTheUI = new ArrayList<Long>();
|
||||||
_log.info("\n\n\n ****** ASSIGN_ROLES_TO_USERS");
|
for(long id : newRoleIDs) {
|
||||||
try{
|
roleIdsComingFromTheUI.add(id);
|
||||||
lrm.removeAllRolesFromUser(gcu.getUserId(), groupId);
|
roleIdsComingFromTheUICopy.add(id);
|
||||||
}catch(Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
} else if(deletePreviousRoles && typeOfChangesUpponUserMode == ASSIGN_TEAMS_TO_USERS){
|
|
||||||
_log.debug("ASSIGN_TEAMS_TO_USERS");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long[] gCubeTeamIDs = new long[usersTeams.length];
|
List<Long> oldRoleIds = oldRoles.stream().map(role -> new Long(role.getRoleId())).collect(Collectors.toList());
|
||||||
String[] gCubeTeamNames = new String[usersTeams.length];
|
switch (typeOfChangesUpponUserMode) {
|
||||||
StringBuffer teamNames = new StringBuffer();
|
case ASSIGN_ROLES_TO_USERS:
|
||||||
|
|
||||||
for (int i=0; i<usersTeams.length; i++) {
|
|
||||||
GCubeTeam team = null;
|
|
||||||
try {
|
|
||||||
team = lrm.getTeam(groupId, usersTeams[i].trim());
|
|
||||||
gCubeTeamIDs[i] = team.getTeamId();
|
|
||||||
gCubeTeamNames[i] = team.getTeamName();
|
|
||||||
if(i != usersTeams.length-1){
|
|
||||||
teamNames.append(gCubeTeamNames[i]).append(", ");
|
|
||||||
}else {
|
|
||||||
teamNames.append(gCubeTeamNames[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
_log.debug("Succeeded at retrieving team with name: " + usersTeams[i].trim() + " for the group: "+ groupName);
|
|
||||||
} catch (TeamRetrievalFault e1) {
|
|
||||||
_log.debug("Failed at retrieving team with name: " + usersTeams[i].trim() + " for the group: "+ groupName);
|
|
||||||
e1.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
if(typeOfChangesUpponUserMode != ASSIGN_ROLES_TO_USERS){
|
|
||||||
List<GCubeTeam> oldUserTeams = lrm.listTeamsByUserAndGroup(gcu.getUserId(), groupId);
|
|
||||||
List<Long> oldUserTeamsIDs = new ArrayList<Long>();
|
|
||||||
for(Iterator<GCubeTeam> it = oldUserTeams.iterator(); it.hasNext();) {
|
|
||||||
GCubeTeam gct = it.next();
|
|
||||||
oldUserTeamsIDs.add(gct.getTeamId());
|
|
||||||
}
|
|
||||||
List<GCubeTeam> newUserTeams = new ArrayList<GCubeTeam>();
|
|
||||||
List<Long> newUserTeamsIDs = new ArrayList<Long>();
|
|
||||||
|
|
||||||
for(long gCubeTeamID : gCubeTeamIDs) {
|
|
||||||
GCubeTeam gct = lrm.getTeam(gCubeTeamID);
|
|
||||||
newUserTeams.add(gct);
|
|
||||||
newUserTeamsIDs.add(gCubeTeamID);
|
|
||||||
}
|
|
||||||
|
|
||||||
List<GCubeTeam> newTeamsToBeAssociatedWith = new ArrayList<GCubeTeam>(newUserTeams);
|
|
||||||
List<Long> newTeamsIDsToBeAssociatedWith = new ArrayList<Long>(newUserTeamsIDs);
|
|
||||||
|
|
||||||
newUserTeams.removeAll(oldUserTeams);
|
|
||||||
newUserTeamsIDs.removeAll(oldUserTeamsIDs);
|
|
||||||
|
|
||||||
for(Long gctID : newUserTeamsIDs){
|
|
||||||
lrm.assignTeamToUser(gcu.getUserId(), gctID);
|
|
||||||
GCubeTeam gct = lrm.getTeam(gctID);
|
|
||||||
notifyUsersByEmailOnTeamAssignment(groupId, gcu, lum.getUserById(selfId), lgm.getGroup(groupId), httpServletRequest, gct);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(newUserTeamsIDs.size() > 0)
|
|
||||||
_log.debug("User: " + gcu.getUsername() + " was added to following teams: " + teamNames);
|
|
||||||
else
|
|
||||||
_log.debug("User: " + gcu.getUsername() + " was added to no new teams");
|
|
||||||
|
|
||||||
oldUserTeams.removeAll(newTeamsToBeAssociatedWith);
|
|
||||||
oldUserTeamsIDs.removeAll(newTeamsIDsToBeAssociatedWith);
|
|
||||||
List<Long> teamsIDsToBeDisassociatedFrom = new ArrayList<Long>(oldUserTeamsIDs);
|
|
||||||
if(teamsIDsToBeDisassociatedFrom.size() != 0) {
|
|
||||||
List<GCubeTeam> teamsToBeDisassociatedFrom = new ArrayList<GCubeTeam>();
|
|
||||||
for(Iterator<Long> it = teamsIDsToBeDisassociatedFrom.iterator(); it.hasNext();){
|
|
||||||
teamsToBeDisassociatedFrom.add(lrm.getTeam(it.next()));
|
|
||||||
}
|
|
||||||
|
|
||||||
lrm.deleteUserTeams(gcu.getUserId(), teamsToBeDisassociatedFrom);
|
|
||||||
|
|
||||||
for(int i = 0; i < teamsToBeDisassociatedFrom.size(); i++) {
|
|
||||||
|
|
||||||
notifyUsersByEmailOnTeamDismissal(groupId, gcu, lum.getUserById(selfId), lgm.getGroup(groupId), httpServletRequest, teamsToBeDisassociatedFrom.get(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (TeamRetrievalFault e) {
|
|
||||||
_log.debug("User: " + gcu.getUsername() + " failed to be added to the following teams: " + teamNames);
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean rolesAssignmentSucceeded = lrm.assignRolesToUser(gcu.getUserId(), groupId, roleIDs);
|
|
||||||
|
|
||||||
if(rolesAssignmentSucceeded) {
|
|
||||||
List<GCubeRole> rolesComingFromTheUI = gCubeRoles.length > 0 ? Arrays.asList(gCubeRoles) : new ArrayList<GCubeRole>();
|
|
||||||
_log.info("rolesComingFromTheUI");
|
|
||||||
rolesComingFromTheUI.forEach(role -> _log.info("Role UI: " + role.getRoleName()));
|
|
||||||
List<Long> roleIdsComingFromTheUICopy = new ArrayList<Long>();
|
|
||||||
List<Long> roleIdsComingFromTheUI = new ArrayList<Long>();
|
|
||||||
for(long id : newRoleIDs) {
|
|
||||||
roleIdsComingFromTheUI.add(id);
|
|
||||||
roleIdsComingFromTheUICopy.add(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
List<Long> oldRoleIds = oldRoles.stream().map(role -> new Long(role.getRoleId())).collect(Collectors.toList());
|
|
||||||
|
|
||||||
//new roles
|
//new roles
|
||||||
roleIdsComingFromTheUI.removeAll(oldRoleIds);
|
roleIdsComingFromTheUI.removeAll(oldRoleIds);
|
||||||
List<GCubeRole> newRoles = new ArrayList<GCubeRole>(rolesComingFromTheUI.stream().filter(role -> roleIdsComingFromTheUI.contains(role.getRoleId())).collect(Collectors.toList()) );
|
List<GCubeRole> newRoles = new ArrayList<GCubeRole>(rolesComingFromTheUI.stream().filter(role -> roleIdsComingFromTheUI.contains(role.getRoleId())).collect(Collectors.toList()) );
|
||||||
_log.info("New roles");
|
_log.info("New roles found for "+gcu.getUsername());
|
||||||
newRoles.forEach(role -> _log.info("NewRole: " + role.getRoleName()));
|
boolean roleAssignmentSucceeded = false;
|
||||||
|
for (GCubeRole newRole : newRoles) {
|
||||||
|
_log.info("NewRole: " + newRole.getRoleName());
|
||||||
|
roleAssignmentSucceeded = lrm.assignRoleToUser(gcu.getUserId(), groupId, newRole.getRoleId());
|
||||||
|
}
|
||||||
|
if(newRoles.size() > 0 && roleAssignmentSucceeded)
|
||||||
|
notifyUsersByEmailOnRoleAssignment(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), newRoles, httpServletRequest);
|
||||||
|
break;
|
||||||
|
case REMOVE_ROLES_TO_USERS:
|
||||||
//revoked roles
|
//revoked roles
|
||||||
oldRoleIds.removeAll(roleIdsComingFromTheUICopy);
|
oldRoleIds.removeAll(roleIdsComingFromTheUICopy);
|
||||||
List<GCubeRole> rolesRevoked = new ArrayList<GCubeRole>( oldRoles.stream().filter(role -> oldRoleIds.contains(role.getRoleId())).collect(Collectors.toList()) );
|
List<GCubeRole> rolesRevoked = new ArrayList<GCubeRole>( oldRoles.stream().filter(role -> oldRoleIds.contains(role.getRoleId())).collect(Collectors.toList()) );
|
||||||
_log.info("Revoked roles");
|
_log.info("Revoked roles found for "+gcu.getUsername());
|
||||||
rolesRevoked.forEach(role -> _log.info("RevokedRole: " + role.getRoleName()));
|
boolean roleRevokationSucceeded = false;
|
||||||
|
for (GCubeRole role : rolesRevoked) {
|
||||||
if(newRoles.size() > 0 || rolesRevoked.size() > 0)
|
_log.info("Revoked role: " + role.getRoleName());
|
||||||
notifyUsersByEmailOnRoleAssignemntRevoke(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), newRoles, rolesRevoked, httpServletRequest);
|
roleRevokationSucceeded = lrm.removeRoleFromUser(gcu.getUserId(), groupId, role.getRoleId());
|
||||||
|
}
|
||||||
|
if(rolesRevoked.size() > 0 && roleRevokationSucceeded)
|
||||||
|
notifyUsersByEmailOnRoleRevokation(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), rolesRevoked, httpServletRequest);
|
||||||
|
break;
|
||||||
|
case ASSIGN_TEAMS_TO_USERS:
|
||||||
|
try {
|
||||||
|
assignRemoveUserToTeams(lrm, gcu, groupId, groupName, usersIDs, usersTeams, selfId, httpServletRequest);
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
_log.info("User: " + currentUser.getUsername() + " hes edited the roles of user: "+ gcu.getUsername() + " for the context: " + groupName);
|
||||||
|
|
||||||
_log.debug("User: " + currentUser.getUsername() + " is editing the roles of user: "+ gcu.getUsername() + " for the site: " + groupName + "and deletes all previous site-roles");
|
} //END EDIT ROLES for single user
|
||||||
|
|
||||||
} //END EDIT ROLES
|
|
||||||
|
|
||||||
else {
|
|
||||||
|
|
||||||
|
else { //MULTIUSER ASSIGNMENT of Roles only and Groups/Sites add and removal
|
||||||
|
System.out.println("MULTIUSER ASSIGNMENT type?="+typeOfChangesUpponUserMode);
|
||||||
List<GCubeTeam> existingGCubeTeams = lrm.listTeamsByGroup(groupId);
|
List<GCubeTeam> existingGCubeTeams = lrm.listTeamsByGroup(groupId);
|
||||||
|
|
||||||
for(long uid : usersIDs){
|
for (long uid : usersIDs) { //for each user
|
||||||
|
|
||||||
GCubeUser user = lum.getUserById(uid);
|
GCubeUser user = lum.getUserById(uid);
|
||||||
GCubeUser gcu = lum.getUserByUsername(user.getUsername());
|
GCubeUser gcu = lum.getUserByUsername(user.getUsername());
|
||||||
|
|
||||||
|
@ -746,7 +789,6 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
}
|
}
|
||||||
List<GCubeRole> oldRoles = lrm.listRolesByUserAndGroup(usersIDs[0], groupId);
|
List<GCubeRole> oldRoles = lrm.listRolesByUserAndGroup(usersIDs[0], groupId);
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
boolean rolesAssignmentSucceeded = lrm.assignRolesToUser(gcu.getUserId(), groupId, roleIDs);
|
boolean rolesAssignmentSucceeded = lrm.assignRolesToUser(gcu.getUserId(), groupId, roleIDs);
|
||||||
|
|
||||||
if(rolesAssignmentSucceeded) {
|
if(rolesAssignmentSucceeded) {
|
||||||
|
@ -765,13 +807,9 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
roleIdsComingFromTheUI.removeAll(oldRoleIds);
|
roleIdsComingFromTheUI.removeAll(oldRoleIds);
|
||||||
List<GCubeRole> newRoles = new ArrayList<GCubeRole>(rolesComingFromTheUI.stream().filter(role -> roleIdsComingFromTheUI.contains(role.getRoleId())).collect(Collectors.toList()) );
|
List<GCubeRole> newRoles = new ArrayList<GCubeRole>(rolesComingFromTheUI.stream().filter(role -> roleIdsComingFromTheUI.contains(role.getRoleId())).collect(Collectors.toList()) );
|
||||||
|
|
||||||
//revoked roles
|
|
||||||
oldRoleIds.removeAll(roleIdsComingFromTheUICopy);
|
|
||||||
List<GCubeRole> rolesRevoked = new ArrayList<GCubeRole>( oldRoles.stream().filter(role -> oldRoleIds.contains(role.getRoleId())).collect(Collectors.toList()) );
|
|
||||||
|
|
||||||
|
if(newRoles.size() > 0)
|
||||||
if(newRoles.size() > 0 && rolesRevoked.size() > 0)
|
notifyUsersByEmailOnRoleAssignment(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), newRoles, httpServletRequest);
|
||||||
notifyUsersByEmailOnRoleAssignemntRevoke(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), newRoles, rolesRevoked, httpServletRequest);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Long> gCubeTeamIDs = new ArrayList<Long>();
|
List<Long> gCubeTeamIDs = new ArrayList<Long>();
|
||||||
|
@ -806,7 +844,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
|
||||||
List<GCubeTeam> oldUserTeams = lrm.listTeamsByUserAndGroup(gcu.getUserId(), groupId);
|
List<GCubeTeam> oldUserTeams = lrm.listTeamsByUserAndGroup(gcu.getUserId(), groupId);
|
||||||
List<Long> oldUserTeamsIDs = new ArrayList<Long>();
|
List<Long> oldUserTeamsIDs = new ArrayList<Long>();
|
||||||
|
@ -816,29 +854,29 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
}
|
}
|
||||||
List<GCubeTeam> newUserTeams = new ArrayList<GCubeTeam>();
|
List<GCubeTeam> newUserTeams = new ArrayList<GCubeTeam>();
|
||||||
List<Long> newUserTeamsIDs = new ArrayList<Long>();
|
List<Long> newUserTeamsIDs = new ArrayList<Long>();
|
||||||
|
|
||||||
for(long gCubeTeamID : gCubeTeamIDs) {
|
for(long gCubeTeamID : gCubeTeamIDs) {
|
||||||
GCubeTeam gct = lrm.getTeam(gCubeTeamID);
|
GCubeTeam gct = lrm.getTeam(gCubeTeamID);
|
||||||
newUserTeams.add(gct);
|
newUserTeams.add(gct);
|
||||||
newUserTeamsIDs.add(gCubeTeamID);
|
newUserTeamsIDs.add(gCubeTeamID);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<GCubeTeam> newTeamsToBeAssociatedWith = new ArrayList<GCubeTeam>(newUserTeams);
|
List<GCubeTeam> newTeamsToBeAssociatedWith = new ArrayList<GCubeTeam>(newUserTeams);
|
||||||
List<Long> newTeamsIDsToBeAssociatedWith = new ArrayList<Long>(newUserTeamsIDs);
|
List<Long> newTeamsIDsToBeAssociatedWith = new ArrayList<Long>(newUserTeamsIDs);
|
||||||
newUserTeams.removeAll(oldUserTeams);
|
newUserTeams.removeAll(oldUserTeams);
|
||||||
newUserTeamsIDs.removeAll(oldUserTeamsIDs);
|
newUserTeamsIDs.removeAll(oldUserTeamsIDs);
|
||||||
|
|
||||||
for(Long gctID : newUserTeamsIDs){
|
for(Long gctID : newUserTeamsIDs){
|
||||||
lrm.assignTeamToUser(gcu.getUserId(), gctID);
|
lrm.assignTeamToUser(gcu.getUserId(), gctID);
|
||||||
GCubeTeam gct = lrm.getTeam(gctID);
|
GCubeTeam gct = lrm.getTeam(gctID);
|
||||||
notifyUsersByEmailOnTeamAssignment(groupId, gcu, lum.getUserById(selfId), lgm.getGroup(groupId), httpServletRequest, gct);
|
notifyUsersByEmailOnTeamAssignment(groupId, gcu, lum.getUserById(selfId), lgm.getGroup(groupId), httpServletRequest, gct);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(newUserTeamsIDs.size() > 0)
|
if(newUserTeamsIDs.size() > 0)
|
||||||
_log.debug("User: " + gcu.getUsername() + " was added to following teams: " + teamNames);
|
_log.debug("User: " + gcu.getUsername() + " was added to following teams: " + teamNames);
|
||||||
else
|
else
|
||||||
_log.debug("User: " + gcu.getUsername() + " was added to no new teams");
|
_log.debug("User: " + gcu.getUsername() + " was added to no new teams");
|
||||||
|
|
||||||
oldUserTeams.removeAll(newTeamsToBeAssociatedWith);
|
oldUserTeams.removeAll(newTeamsToBeAssociatedWith);
|
||||||
oldUserTeamsIDs.removeAll(newTeamsIDsToBeAssociatedWith);
|
oldUserTeamsIDs.removeAll(newTeamsIDsToBeAssociatedWith);
|
||||||
List<Long> teamsIDsToBeDisassociatedFrom = new ArrayList<Long>(oldUserTeamsIDs);
|
List<Long> teamsIDsToBeDisassociatedFrom = new ArrayList<Long>(oldUserTeamsIDs);
|
||||||
|
@ -847,20 +885,14 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
for(Iterator<Long> it = teamsIDsToBeDisassociatedFrom.iterator(); it.hasNext();){
|
for(Iterator<Long> it = teamsIDsToBeDisassociatedFrom.iterator(); it.hasNext();){
|
||||||
teamsToBeDisassociatedFrom.add( lrm.getTeam(it.next()) );
|
teamsToBeDisassociatedFrom.add( lrm.getTeam(it.next()) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// lrm.deleteUserTeams(gcu.getUserId(), teamsToBeDisassociatedFrom);
|
|
||||||
|
|
||||||
// for(int index = 0; index < teamsToBeDisassociatedFrom.size(); index++) {
|
|
||||||
// notifyUsersByEmailOnTeamDismissal(groupId, gcu, lum.getUserById(selfId), lgm.getGroup(groupId), httpServletRequest, teamsToBeDisassociatedFrom.get(index));
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
} catch (TeamRetrievalFault e) {
|
} catch (TeamRetrievalFault e) {
|
||||||
_log.debug("User: " + gcu.getUsername() + " failed to be added to the following teams: " + teamNames);
|
_log.debug("User: " + gcu.getUsername() + " failed to be added to the following teams: " + teamNames);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
_log.debug("User: " + currentUser.getUsername() + " is editing the roles of user: "+ user.getUsername() + " for the site: " + groupName);
|
_log.debug("User: " + currentUser.getUsername() + " is editing the roles or VRE groups of user: "+ user.getUsername() + " for the site: " + groupName);
|
||||||
}
|
} //end for foreach user
|
||||||
}
|
}
|
||||||
|
|
||||||
return currentGroupUsers( groupId, selfId, httpServletRequest);
|
return currentGroupUsers( groupId, selfId, httpServletRequest);
|
||||||
|
@ -952,7 +984,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
j++;
|
j++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TemplateUserHasBeenUnregisteredVRE requestAcceptedTemplate = new TemplateUserHasBeenUnregisteredVRE(
|
TemplateUserHasBeenUnregisteredVRE requestAcceptedTemplate = new TemplateUserHasBeenUnregisteredVRE(
|
||||||
gcu, um.getUserById(PortalUtil.getUserId(httpServletRequest)), gm.getGroup(groupId),
|
gcu, um.getUserById(PortalUtil.getUserId(httpServletRequest)), gm.getGroup(groupId),
|
||||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
||||||
|
@ -972,7 +1004,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
ResourceRequest request, long selfId
|
ResourceRequest request, long selfId
|
||||||
){
|
){
|
||||||
HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request);
|
HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request);
|
||||||
|
|
||||||
if(currentUsersTable && !deleteUsersFromCurrentUsersTable){
|
if(currentUsersTable && !deleteUsersFromCurrentUsersTable){
|
||||||
if(modeCurrentUsersTable == REFRESH_CURRENT_USERS_TABLE){
|
if(modeCurrentUsersTable == REFRESH_CURRENT_USERS_TABLE){
|
||||||
try {
|
try {
|
||||||
|
@ -1210,7 +1242,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
}
|
}
|
||||||
JSONArray ja = JSONFactoryUtil.createJSONArray();
|
JSONArray ja = JSONFactoryUtil.createJSONArray();
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||||
|
|
||||||
for(GCubeTeam siteTeam : currentGroupTeams){
|
for(GCubeTeam siteTeam : currentGroupTeams){
|
||||||
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
||||||
String siteTeamName = siteTeam.getTeamName();
|
String siteTeamName = siteTeam.getTeamName();
|
||||||
|
@ -1344,16 +1376,16 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
|
|
||||||
return emailSubject;
|
return emailSubject;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyUsersByEmailOnTeamAssignment(
|
public void notifyUsersByEmailOnTeamAssignment(
|
||||||
long groupId, GCubeUser gcu, GCubeUser manager, GCubeGroup group,
|
long groupId, GCubeUser gcu, GCubeUser manager, GCubeGroup group,
|
||||||
HttpServletRequest httpServletRequest, GCubeTeam team) {
|
HttpServletRequest httpServletRequest, GCubeTeam team) {
|
||||||
|
|
||||||
|
|
||||||
_log.debug("notifyUsersByEmailOnTeamAssignment for user: " + gcu.getUsername() + " for team: " + team.getTeamName());
|
_log.debug("notifyUsersByEmailOnTeamAssignment for user: " + gcu.getUsername() + " for team: " + team.getTeamName());
|
||||||
|
|
||||||
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
||||||
|
|
||||||
int recSize = managersEmails.size() + 1;
|
int recSize = managersEmails.size() + 1;
|
||||||
Recipient[] recs = new Recipient[recSize];
|
Recipient[] recs = new Recipient[recSize];
|
||||||
recs[0] = new Recipient(new EmailAddress(gcu.getEmail()), RecipientType.TO);
|
recs[0] = new Recipient(new EmailAddress(gcu.getEmail()), RecipientType.TO);
|
||||||
|
@ -1364,27 +1396,27 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String properEmailSubject = EmailPartsConstruction.getSiteTeamAssignmentSubject(team.getTeamName());
|
String properEmailSubject = EmailPartsConstruction.getSiteTeamAssignmentSubject(team.getTeamName());
|
||||||
|
|
||||||
TemplateUserHasBeenAssociatedWithGCubeTeam requestTeamAssignmentTemplate = new TemplateUserHasBeenAssociatedWithGCubeTeam(
|
TemplateUserHasBeenAssociatedWithGCubeTeam requestTeamAssignmentTemplate = new TemplateUserHasBeenAssociatedWithGCubeTeam(
|
||||||
group, team, gcu,
|
group, team, gcu,
|
||||||
manager, new Date(),
|
manager, new Date(),
|
||||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
||||||
|
|
||||||
_log.debug("Sending email to user: " + gcu.getUsername() + ". He is being assigned to group: " + team.getTeamName());
|
_log.debug("Sending email to user: " + gcu.getUsername() + ". He is being assigned to group: " + team.getTeamName());
|
||||||
|
|
||||||
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)requestTeamAssignmentTemplate, httpServletRequest, recs);
|
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)requestTeamAssignmentTemplate, httpServletRequest, recs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyUsersByEmailOnTeamDismissal(
|
public void notifyUsersByEmailOnTeamDismissal(
|
||||||
long groupId, GCubeUser gcu, GCubeUser manager, GCubeGroup group,
|
long groupId, GCubeUser gcu, GCubeUser manager, GCubeGroup group,
|
||||||
HttpServletRequest httpServletRequest, GCubeTeam team) {
|
HttpServletRequest httpServletRequest, GCubeTeam team) {
|
||||||
|
|
||||||
_log.debug("notifyUsersByEmailOnTeamDismissal for user: " + gcu.getUsername() + " for team: " + team.getTeamName());
|
_log.debug("notifyUsersByEmailOnTeamDismissal for user: " + gcu.getUsername() + " for team: " + team.getTeamName());
|
||||||
|
|
||||||
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
||||||
|
|
||||||
int recSize = managersEmails.size() + 1;
|
int recSize = managersEmails.size() + 1;
|
||||||
Recipient[] recs = new Recipient[recSize];
|
Recipient[] recs = new Recipient[recSize];
|
||||||
recs[0] = new Recipient(new EmailAddress(gcu.getEmail()), RecipientType.TO);
|
recs[0] = new Recipient(new EmailAddress(gcu.getEmail()), RecipientType.TO);
|
||||||
|
@ -1395,22 +1427,33 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String properEmailSubject = EmailPartsConstruction.getSiteTeamDismissalSubject(team.getTeamName());
|
String properEmailSubject = EmailPartsConstruction.getSiteTeamDismissalSubject(team.getTeamName());
|
||||||
|
|
||||||
TemplateUserHasBeenDissAssociatedWithGCubeTeam requestTeamDismissalTemplate = new TemplateUserHasBeenDissAssociatedWithGCubeTeam(
|
TemplateUserHasBeenDissAssociatedWithGCubeTeam requestTeamDismissalTemplate = new TemplateUserHasBeenDissAssociatedWithGCubeTeam(
|
||||||
group, team, gcu,
|
group, team, gcu,
|
||||||
manager, new Date(),
|
manager, new Date(),
|
||||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
||||||
|
|
||||||
_log.debug("Sending email to user: " + gcu.getUsername() + ". He is being removed from group: " + team.getTeamName());
|
_log.debug("Sending email to user: " + gcu.getUsername() + ". He is being removed from group: " + team.getTeamName());
|
||||||
|
|
||||||
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)requestTeamDismissalTemplate, httpServletRequest, recs);
|
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)requestTeamDismissalTemplate, httpServletRequest, recs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void notifyUsersByEmailOnRoleAssignemntRevoke(long groupId, GCubeUser userToReceiveTheMail, GCubeUser manager, GCubeGroup group, List<GCubeRole> newRoles, List<GCubeRole> revokedRoles, HttpServletRequest httpServletRequest) throws UserManagementSystemException, GroupRetrievalFault {
|
|
||||||
_log.debug("Notifying user by email on new role assignme or role revoke fro user: " + userToReceiveTheMail.getUsername() + " for group: " + group.getGroupName() );
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param groupId
|
||||||
|
* @param userToReceiveTheMail
|
||||||
|
* @param manager
|
||||||
|
* @param group
|
||||||
|
* @param newRoles
|
||||||
|
* @param httpServletRequest
|
||||||
|
* @throws UserManagementSystemException
|
||||||
|
* @throws GroupRetrievalFault
|
||||||
|
*/
|
||||||
|
public void notifyUsersByEmailOnRoleAssignment(long groupId, GCubeUser userToReceiveTheMail, GCubeUser manager, GCubeGroup group, List<GCubeRole> newRoles, HttpServletRequest httpServletRequest) throws UserManagementSystemException, GroupRetrievalFault {
|
||||||
|
_log.debug("Notifying user by email on role assignment for user: " + userToReceiveTheMail.getUsername() + " for context name: " + group.getGroupName() );
|
||||||
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
||||||
|
|
||||||
int recSize = managersEmails.size() + 1;
|
int recSize = managersEmails.size() + 1;
|
||||||
|
@ -1423,24 +1466,47 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String properEmailSubject = EmailPartsConstruction.getRoleAssignmentRevokeSubject(new LiferayGroupManager().getGroup(groupId).getGroupName());
|
String properEmailSubject = EmailPartsConstruction.getRoleAssignmentRevokeSubject(new LiferayGroupManager().getGroup(groupId).getGroupName());
|
||||||
|
|
||||||
_log.debug("properEmailSubject: " + properEmailSubject);
|
TemplateUserRolesModifiedForGroup templateUserRolesModifiedForGroup = new TemplateUserRolesModifiedForGroup(
|
||||||
|
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest),
|
||||||
|
group, userToReceiveTheMail, manager, newRoles, new ArrayList<>(), new Date() );
|
||||||
|
|
||||||
|
_log.info("Sending email to user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName());
|
||||||
|
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, recs);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param groupId
|
||||||
|
* @param userToReceiveTheMail
|
||||||
|
* @param manager
|
||||||
|
* @param group
|
||||||
|
* @param revokeRoles
|
||||||
|
* @param httpServletRequest
|
||||||
|
* @throws UserManagementSystemException
|
||||||
|
* @throws GroupRetrievalFault
|
||||||
|
*/
|
||||||
|
public void notifyUsersByEmailOnRoleRevokation(long groupId, GCubeUser userToReceiveTheMail, GCubeUser manager, GCubeGroup group, List<GCubeRole> revokeRoles, HttpServletRequest httpServletRequest) throws UserManagementSystemException, GroupRetrievalFault {
|
||||||
|
_log.debug("Notifying user by email on role revokation for user: " + userToReceiveTheMail.getUsername() + " for context name: " + group.getGroupName() );
|
||||||
|
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
||||||
|
|
||||||
|
int recSize = managersEmails.size() + 1;
|
||||||
|
Recipient[] recs = new Recipient[recSize];
|
||||||
|
recs[0] = new Recipient(new EmailAddress(userToReceiveTheMail.getEmail()), RecipientType.TO);
|
||||||
|
if (!managersEmails.isEmpty()) {
|
||||||
|
int i = 1;
|
||||||
|
for (String mEmail : managersEmails){
|
||||||
|
recs[i] = new Recipient(new EmailAddress(mEmail), RecipientType.BCC);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String properEmailSubject = EmailPartsConstruction.getRoleAssignmentRevokeSubject(new LiferayGroupManager().getGroup(groupId).getGroupName());
|
||||||
|
|
||||||
TemplateUserRolesModifiedForGroup templateUserRolesModifiedForGroup = new TemplateUserRolesModifiedForGroup(
|
TemplateUserRolesModifiedForGroup templateUserRolesModifiedForGroup = new TemplateUserRolesModifiedForGroup(
|
||||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest),
|
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest),
|
||||||
group, userToReceiveTheMail, manager, newRoles, revokedRoles, new Date() );
|
group, userToReceiveTheMail, manager, new ArrayList<>(), revokeRoles, new Date() );
|
||||||
|
|
||||||
// _log.debug("--------------------------------------------------------------------------------------------------------------------------------------------");
|
|
||||||
// _log.info(templateUserRolesModifiedForGroup.getTextHTML());
|
|
||||||
// _log.info("--------------------------------------------------------------------------------------------------------------------------------------------");
|
|
||||||
// _log.info(templateUserRolesModifiedForGroup.getTextPLAIN());
|
|
||||||
// _log.info("--------------------------------------------------------------------------------------------------------------------------------------------");
|
|
||||||
|
|
||||||
_log.debug("Sending email to user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName());
|
|
||||||
_log.info("Sending email to user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName());
|
_log.info("Sending email to user: " + userToReceiveTheMail.getUsername() + ". His roles have been modified within the context of VRE: " + group.getGroupName());
|
||||||
|
|
||||||
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, recs);
|
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, recs);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ function constructToolbarForCurrentUsersTable(){
|
||||||
})).append($('<div></div>', {
|
})).append($('<div></div>', {
|
||||||
id : 'removeRolesToUser',
|
id : 'removeRolesToUser',
|
||||||
class: 'insideToolbar',
|
class: 'insideToolbar',
|
||||||
text : 'Remove Roles'
|
text : 'Revoke Roles'
|
||||||
})).append($('<div></div>', {
|
})).append($('<div></div>', {
|
||||||
id : 'assignUsersToGroup',
|
id : 'assignUsersToGroup',
|
||||||
class: 'insideToolbar',
|
class: 'insideToolbar',
|
||||||
|
|
|
@ -557,37 +557,42 @@ function tableEvents() {
|
||||||
|
|
||||||
}).on('click', 'div#toolbar.shownToolbar div#removeRolesToUser',
|
}).on('click', 'div#toolbar.shownToolbar div#removeRolesToUser',
|
||||||
function() {
|
function() {
|
||||||
$('#removeUsersRolesModal').modal('show');
|
if (usersTableDataForEditing.length > 1) { //you can revoke roles to one user at a time
|
||||||
//remove previous tags
|
alert('Not supported, you can revoke roles to one user at a time only. Please select one single user.');
|
||||||
$('#roleListInRemoveRolesModal').parent().find('.text-tag').remove();
|
}
|
||||||
currentUsersTableRows = [];
|
else {
|
||||||
var usersEmails = [];
|
$('#removeUsersRolesModal').modal('show');
|
||||||
for (var i = 0; i < usersTableDataForEditing.length; i++) {
|
//remove previous tags
|
||||||
var email = usersTableDataForEditing[i][0].Email;
|
$('#roleListInRemoveRolesModal').parent().find('.text-tag').remove();
|
||||||
currentUsersTableRows
|
currentUsersTableRows = [];
|
||||||
.push(usersTableDataForEditing[i].rowIndex);
|
var usersEmails = [];
|
||||||
usersEmails.push(email.substring(5, email.length - 6));
|
for (var i = 0; i < usersTableDataForEditing.length; i++) {
|
||||||
var userUuid = usersTableDataForEditing[i][0].UserId;
|
var email = usersTableDataForEditing[i][0].Email;
|
||||||
userTableUUIDsForEditing.push(userUuid);
|
currentUsersTableRows
|
||||||
}
|
.push(usersTableDataForEditing[i].rowIndex);
|
||||||
var tags = $('textarea#userNamesListInRemoveRolesModal').parent().find(
|
usersEmails.push(email.substring(5, email.length - 6));
|
||||||
'div.text-tags div.text-tag');
|
var userUuid = usersTableDataForEditing[i][0].UserId;
|
||||||
if (tags.length > 0)
|
userTableUUIDsForEditing.push(userUuid);
|
||||||
tags.remove();// Remove previous tags
|
}
|
||||||
$('textarea#userNamesListInRemoveRolesModal').textext()[0].tags().addTags(
|
var tags = $('textarea#userNamesListInRemoveRolesModal').parent().find(
|
||||||
usersEmails);
|
'div.text-tags div.text-tag');
|
||||||
|
if (tags.length > 0)
|
||||||
for (var j = 0; j < userTableUUIDsForEditing.length; j++) {
|
tags.remove();// Remove previous tags
|
||||||
var value = userTableUUIDsForEditing[j].toString();
|
$('textarea#userNamesListInRemoveRolesModal').textext()[0].tags().addTags(
|
||||||
$($('#userNamesListInRemoveRolesModal').parent().find('.text-tag')[j]).data(
|
usersEmails);
|
||||||
'userUUID', value.substring(5, value.length - 6));
|
|
||||||
}
|
for (var j = 0; j < userTableUUIDsForEditing.length; j++) {
|
||||||
showCheckBoxForSingleTagInRemoveRolesModal();
|
var value = userTableUUIDsForEditing[j].toString();
|
||||||
$('textarea#userNamesListInRemoveRolesModal').parent().find('a.tag-remove').off()
|
$($('#userNamesListInRemoveRolesModal').parent().find('.text-tag')[j]).data(
|
||||||
.on('click', function() {
|
'userUUID', value.substring(5, value.length - 6));
|
||||||
$(this).closest('.text-tag').remove();
|
}
|
||||||
showCheckBoxForSingleTagInAssignRolesModal();
|
showCheckBoxForSingleTagInRemoveRolesModal();
|
||||||
});
|
$('textarea#userNamesListInRemoveRolesModal').parent().find('a.tag-remove').off()
|
||||||
|
.on('click', function() {
|
||||||
|
$(this).closest('.text-tag').remove();
|
||||||
|
showCheckBoxForSingleTagInAssignRolesModal();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}).on('click', 'div#toolbar.shownToolbar div#assignUsersToGroup',
|
}).on('click', 'div#toolbar.shownToolbar div#assignUsersToGroup',
|
||||||
function() {
|
function() {
|
||||||
|
|
Loading…
Reference in New Issue