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">
|
||||
<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="/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/resources"/>
|
||||
<property name="context-root" value="UsersManagementPortlet"/>
|
||||
|
||||
<property name="java-output-path" value="/UsersManagementPortlet/target/classes"/>
|
||||
<property name="context-root" value="UsersManagementPortlet-portlet"/>
|
||||
|
||||
</wb-module>
|
||||
|
||||
</project-modules>
|
||||
|
|
|
@ -2,8 +2,14 @@ package gr.cite.bluebridge.portlets.admin.usersmanagementportlet;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collector;
|
||||
import java.util.ArrayList;
|
||||
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 javax.portlet.GenericPortlet;
|
||||
|
@ -16,15 +22,14 @@ import javax.portlet.ResourceRequest;
|
|||
import javax.portlet.ResourceResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserRolesModifiedForGroup;
|
||||
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.templates.TemplateUserApprovedRequestVRE;
|
||||
import org.gcube.portal.mailing.templates.TemplateUserHasBeenUnregisteredVRE;
|
||||
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.RoleManager;
|
||||
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.TemplateUserHasBeenDissAssociatedWithGCubeTeam;
|
||||
import gr.cite.bluebridge.portlets.admin.usersmanagementportlet.mail.templates.TemplateUserRolesModifiedForGroup;
|
||||
|
||||
public class UsersManagementPortletHome extends GenericPortlet {
|
||||
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 EDIT_SITE_TEAMS_TABLE = 1;
|
||||
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 REMOVE_ROLES_TO_USERS = 3;
|
||||
private static final int ASSIGN_TEAMS_TO_USERS = 2;
|
||||
|
||||
|
||||
public void init() {
|
||||
viewTemplate = getInitParameter("view-template");
|
||||
}
|
||||
|
@ -385,14 +390,14 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
|
||||
if(users.size() > 0){
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||
|
||||
|
||||
_log.debug("There are " + users.size() + " users in the group: " + groupName);
|
||||
for(GCubeUser someUser : users){
|
||||
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
||||
try{
|
||||
List<GCubeMembershipRequest> gcmrs = lm.getMembershipRequests(someUser.getUserId(), groupId, MembershipRequestStatus.APPROVED);
|
||||
GCubeMembershipRequest mr = gcmrs.get(gcmrs.size()-1);
|
||||
|
||||
|
||||
jo.put("requestDate", dateFormat.format(mr.getCreateDate()));
|
||||
jo.put("RequestDateObject", mr.getCreateDate());
|
||||
jo.put("validationDate", dateFormat.format(mr.getReplyDate()));
|
||||
|
@ -458,7 +463,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
_log.debug(reqs.size() + " requests for: " + groupName);
|
||||
if(reqs.size() > 0) {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||
|
||||
|
||||
for(GCubeMembershipRequest gcmr : reqs){
|
||||
if(gcmr.getStatus() == MembershipRequestStatus.REQUEST){
|
||||
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
||||
|
@ -509,7 +514,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
_log.debug("Displaying rejected membership requests for the group: " + groupName);
|
||||
try{
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||
|
||||
|
||||
reqs = lm.listMembershipRequestsByGroup(groupId);
|
||||
if(reqs.size() > 0){
|
||||
for(GCubeMembershipRequest gcmr : reqs){
|
||||
|
@ -545,30 +550,143 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
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,
|
||||
long[] usersIDs, String[] theRoles, String[] usersTeams,
|
||||
boolean deletePreviousRoles, long selfId, int typeOfChangesUpponUserMode,
|
||||
ResourceRequest request
|
||||
) 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();
|
||||
LiferayUserManager lum = new LiferayUserManager();
|
||||
|
||||
String groupName = lgm.getGroup(groupId).getGroupName();
|
||||
|
||||
HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request);
|
||||
|
||||
_log.debug("*** \n\n 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());
|
||||
System.out.println("deletePreviousRoles?="+deletePreviousRoles);
|
||||
System.out.println("selfId="+selfId);
|
||||
System.out.println("int typeOfChangesUpponUserMode is="+typeOfChangesUpponUserMode);
|
||||
|
||||
System.out.println("usersIDs.length="+usersIDs.length);
|
||||
|
||||
if(usersIDs.length == 1) {//You can delete previous roles of a single user only.
|
||||
|
||||
_log.debug("Editing users for the context: " + groupName);
|
||||
|
||||
|
||||
_log.debug("String[] theRoles length?="+theRoles.length);
|
||||
for (int i = 0; i < theRoles.length; i++) {
|
||||
_log.debug("role: "+theRoles[i]);
|
||||
}
|
||||
_log.debug("String[] usersTeams length?="+usersTeams.length);
|
||||
for (int i = 0; i < usersTeams.length; i++) {
|
||||
_log.debug("team: "+usersTeams[i]);
|
||||
}
|
||||
_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]);
|
||||
long[] roleIDs = new long[theRoles.length];
|
||||
GCubeRole[] gCubeRoles = new GCubeRole[theRoles.length];
|
||||
|
@ -581,140 +699,65 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
newRoleIDs[i] = gCubeRoles[i].getRoleId();
|
||||
}
|
||||
|
||||
if(typeOfChangesUpponUserMode == REMOVE_ROLES_TO_USERS){
|
||||
System.out.println("\n\n\n ****** REMOVE_ROLES_TO_USERS");
|
||||
|
||||
}
|
||||
else if(typeOfChangesUpponUserMode == ASSIGN_ROLES_TO_USERS){
|
||||
_log.info("\n\n\n ****** ASSIGN_ROLES_TO_USERS");
|
||||
try{
|
||||
lrm.removeAllRolesFromUser(gcu.getUserId(), groupId);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if(deletePreviousRoles && typeOfChangesUpponUserMode == ASSIGN_TEAMS_TO_USERS){
|
||||
_log.debug("ASSIGN_TEAMS_TO_USERS");
|
||||
List<GCubeRole> rolesComingFromTheUI = gCubeRoles.length > 0 ? Arrays.asList(gCubeRoles) : new ArrayList<GCubeRole>();
|
||||
_log.info("roles Coming From The UI");
|
||||
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);
|
||||
}
|
||||
|
||||
long[] gCubeTeamIDs = new long[usersTeams.length];
|
||||
String[] gCubeTeamNames = new String[usersTeams.length];
|
||||
StringBuffer teamNames = new StringBuffer();
|
||||
|
||||
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());
|
||||
|
||||
List<Long> oldRoleIds = oldRoles.stream().map(role -> new Long(role.getRoleId())).collect(Collectors.toList());
|
||||
switch (typeOfChangesUpponUserMode) {
|
||||
case ASSIGN_ROLES_TO_USERS:
|
||||
//new roles
|
||||
roleIdsComingFromTheUI.removeAll(oldRoleIds);
|
||||
List<GCubeRole> newRoles = new ArrayList<GCubeRole>(rolesComingFromTheUI.stream().filter(role -> roleIdsComingFromTheUI.contains(role.getRoleId())).collect(Collectors.toList()) );
|
||||
_log.info("New roles");
|
||||
newRoles.forEach(role -> _log.info("NewRole: " + role.getRoleName()));
|
||||
|
||||
_log.info("New roles found for "+gcu.getUsername());
|
||||
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
|
||||
oldRoleIds.removeAll(roleIdsComingFromTheUICopy);
|
||||
List<GCubeRole> rolesRevoked = new ArrayList<GCubeRole>( oldRoles.stream().filter(role -> oldRoleIds.contains(role.getRoleId())).collect(Collectors.toList()) );
|
||||
_log.info("Revoked roles");
|
||||
rolesRevoked.forEach(role -> _log.info("RevokedRole: " + role.getRoleName()));
|
||||
|
||||
if(newRoles.size() > 0 || rolesRevoked.size() > 0)
|
||||
notifyUsersByEmailOnRoleAssignemntRevoke(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), newRoles, rolesRevoked, httpServletRequest);
|
||||
_log.info("Revoked roles found for "+gcu.getUsername());
|
||||
boolean roleRevokationSucceeded = false;
|
||||
for (GCubeRole role : rolesRevoked) {
|
||||
_log.info("Revoked role: " + role.getRoleName());
|
||||
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
|
||||
|
||||
else {
|
||||
} //END EDIT ROLES for single user
|
||||
|
||||
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);
|
||||
|
||||
for(long uid : usersIDs){
|
||||
for (long uid : usersIDs) { //for each user
|
||||
|
||||
GCubeUser user = lum.getUserById(uid);
|
||||
GCubeUser gcu = lum.getUserByUsername(user.getUsername());
|
||||
|
||||
|
@ -746,7 +789,6 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
}
|
||||
List<GCubeRole> oldRoles = lrm.listRolesByUserAndGroup(usersIDs[0], groupId);
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
boolean rolesAssignmentSucceeded = lrm.assignRolesToUser(gcu.getUserId(), groupId, roleIDs);
|
||||
|
||||
if(rolesAssignmentSucceeded) {
|
||||
|
@ -765,13 +807,9 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
roleIdsComingFromTheUI.removeAll(oldRoleIds);
|
||||
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 && rolesRevoked.size() > 0)
|
||||
notifyUsersByEmailOnRoleAssignemntRevoke(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), newRoles, rolesRevoked, httpServletRequest);
|
||||
if(newRoles.size() > 0)
|
||||
notifyUsersByEmailOnRoleAssignment(groupId, gcu,lum.getUserById(selfId), lgm.getGroup(groupId), newRoles, httpServletRequest);
|
||||
}
|
||||
|
||||
List<Long> gCubeTeamIDs = new ArrayList<Long>();
|
||||
|
@ -806,7 +844,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
}
|
||||
|
||||
try {
|
||||
|
||||
|
||||
|
||||
List<GCubeTeam> oldUserTeams = lrm.listTeamsByUserAndGroup(gcu.getUserId(), groupId);
|
||||
List<Long> oldUserTeamsIDs = new ArrayList<Long>();
|
||||
|
@ -816,29 +854,29 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
}
|
||||
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);
|
||||
|
@ -847,20 +885,14 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
for(Iterator<Long> it = teamsIDsToBeDisassociatedFrom.iterator(); it.hasNext();){
|
||||
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) {
|
||||
_log.debug("User: " + gcu.getUsername() + " failed to be added to the following teams: " + teamNames);
|
||||
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);
|
||||
|
@ -952,7 +984,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TemplateUserHasBeenUnregisteredVRE requestAcceptedTemplate = new TemplateUserHasBeenUnregisteredVRE(
|
||||
gcu, um.getUserById(PortalUtil.getUserId(httpServletRequest)), gm.getGroup(groupId),
|
||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
||||
|
@ -972,7 +1004,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
ResourceRequest request, long selfId
|
||||
){
|
||||
HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request);
|
||||
|
||||
|
||||
if(currentUsersTable && !deleteUsersFromCurrentUsersTable){
|
||||
if(modeCurrentUsersTable == REFRESH_CURRENT_USERS_TABLE){
|
||||
try {
|
||||
|
@ -1210,7 +1242,7 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
}
|
||||
JSONArray ja = JSONFactoryUtil.createJSONArray();
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy", httpServletRequest.getLocale());
|
||||
|
||||
|
||||
for(GCubeTeam siteTeam : currentGroupTeams){
|
||||
JSONObject jo = JSONFactoryUtil.createJSONObject();
|
||||
String siteTeamName = siteTeam.getTeamName();
|
||||
|
@ -1344,16 +1376,16 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
|
||||
return emailSubject;
|
||||
}
|
||||
|
||||
|
||||
public void notifyUsersByEmailOnTeamAssignment(
|
||||
long groupId, GCubeUser gcu, GCubeUser manager, GCubeGroup group,
|
||||
HttpServletRequest httpServletRequest, GCubeTeam team) {
|
||||
|
||||
|
||||
|
||||
|
||||
_log.debug("notifyUsersByEmailOnTeamAssignment for user: " + gcu.getUsername() + " for team: " + team.getTeamName());
|
||||
|
||||
|
||||
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
||||
|
||||
|
||||
int recSize = managersEmails.size() + 1;
|
||||
Recipient[] recs = new Recipient[recSize];
|
||||
recs[0] = new Recipient(new EmailAddress(gcu.getEmail()), RecipientType.TO);
|
||||
|
@ -1364,27 +1396,27 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
String properEmailSubject = EmailPartsConstruction.getSiteTeamAssignmentSubject(team.getTeamName());
|
||||
|
||||
TemplateUserHasBeenAssociatedWithGCubeTeam requestTeamAssignmentTemplate = new TemplateUserHasBeenAssociatedWithGCubeTeam(
|
||||
group, team, gcu,
|
||||
manager, new Date(),
|
||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
||||
|
||||
|
||||
_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);
|
||||
}
|
||||
|
||||
|
||||
public void notifyUsersByEmailOnTeamDismissal(
|
||||
long groupId, GCubeUser gcu, GCubeUser manager, GCubeGroup group,
|
||||
HttpServletRequest httpServletRequest, GCubeTeam team) {
|
||||
|
||||
|
||||
_log.debug("notifyUsersByEmailOnTeamDismissal for user: " + gcu.getUsername() + " for team: " + team.getTeamName());
|
||||
|
||||
|
||||
ArrayList<String> managersEmails = getVREManagersEmailsForGroup(groupId);
|
||||
|
||||
|
||||
int recSize = managersEmails.size() + 1;
|
||||
Recipient[] recs = new Recipient[recSize];
|
||||
recs[0] = new Recipient(new EmailAddress(gcu.getEmail()), RecipientType.TO);
|
||||
|
@ -1395,22 +1427,33 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
String properEmailSubject = EmailPartsConstruction.getSiteTeamDismissalSubject(team.getTeamName());
|
||||
|
||||
TemplateUserHasBeenDissAssociatedWithGCubeTeam requestTeamDismissalTemplate = new TemplateUserHasBeenDissAssociatedWithGCubeTeam(
|
||||
group, team, gcu,
|
||||
manager, new Date(),
|
||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest));
|
||||
|
||||
|
||||
_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);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
int recSize = managersEmails.size() + 1;
|
||||
|
@ -1423,24 +1466,47 @@ public class UsersManagementPortletHome extends GenericPortlet {
|
|||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
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(
|
||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest),
|
||||
group, userToReceiveTheMail, manager, newRoles, revokedRoles, new Date() );
|
||||
PortalContext.getConfiguration().getGatewayName(httpServletRequest), PortalContext.getConfiguration().getGatewayURL(httpServletRequest),
|
||||
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());
|
||||
|
||||
EmailTemplateService.send(properEmailSubject, (org.gcube.common.portal.mailing.templates.Template)templateUserRolesModifiedForGroup, httpServletRequest, recs);
|
||||
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ function constructToolbarForCurrentUsersTable(){
|
|||
})).append($('<div></div>', {
|
||||
id : 'removeRolesToUser',
|
||||
class: 'insideToolbar',
|
||||
text : 'Remove Roles'
|
||||
text : 'Revoke Roles'
|
||||
})).append($('<div></div>', {
|
||||
id : 'assignUsersToGroup',
|
||||
class: 'insideToolbar',
|
||||
|
|
|
@ -557,37 +557,42 @@ function tableEvents() {
|
|||
|
||||
}).on('click', 'div#toolbar.shownToolbar div#removeRolesToUser',
|
||||
function() {
|
||||
$('#removeUsersRolesModal').modal('show');
|
||||
//remove previous tags
|
||||
$('#roleListInRemoveRolesModal').parent().find('.text-tag').remove();
|
||||
currentUsersTableRows = [];
|
||||
var usersEmails = [];
|
||||
for (var i = 0; i < usersTableDataForEditing.length; i++) {
|
||||
var email = usersTableDataForEditing[i][0].Email;
|
||||
currentUsersTableRows
|
||||
.push(usersTableDataForEditing[i].rowIndex);
|
||||
usersEmails.push(email.substring(5, email.length - 6));
|
||||
var userUuid = usersTableDataForEditing[i][0].UserId;
|
||||
userTableUUIDsForEditing.push(userUuid);
|
||||
}
|
||||
var tags = $('textarea#userNamesListInRemoveRolesModal').parent().find(
|
||||
'div.text-tags div.text-tag');
|
||||
if (tags.length > 0)
|
||||
tags.remove();// Remove previous tags
|
||||
$('textarea#userNamesListInRemoveRolesModal').textext()[0].tags().addTags(
|
||||
usersEmails);
|
||||
|
||||
for (var j = 0; j < userTableUUIDsForEditing.length; j++) {
|
||||
var value = userTableUUIDsForEditing[j].toString();
|
||||
$($('#userNamesListInRemoveRolesModal').parent().find('.text-tag')[j]).data(
|
||||
'userUUID', value.substring(5, value.length - 6));
|
||||
}
|
||||
showCheckBoxForSingleTagInRemoveRolesModal();
|
||||
$('textarea#userNamesListInRemoveRolesModal').parent().find('a.tag-remove').off()
|
||||
.on('click', function() {
|
||||
$(this).closest('.text-tag').remove();
|
||||
showCheckBoxForSingleTagInAssignRolesModal();
|
||||
});
|
||||
if (usersTableDataForEditing.length > 1) { //you can revoke roles to one user at a time
|
||||
alert('Not supported, you can revoke roles to one user at a time only. Please select one single user.');
|
||||
}
|
||||
else {
|
||||
$('#removeUsersRolesModal').modal('show');
|
||||
//remove previous tags
|
||||
$('#roleListInRemoveRolesModal').parent().find('.text-tag').remove();
|
||||
currentUsersTableRows = [];
|
||||
var usersEmails = [];
|
||||
for (var i = 0; i < usersTableDataForEditing.length; i++) {
|
||||
var email = usersTableDataForEditing[i][0].Email;
|
||||
currentUsersTableRows
|
||||
.push(usersTableDataForEditing[i].rowIndex);
|
||||
usersEmails.push(email.substring(5, email.length - 6));
|
||||
var userUuid = usersTableDataForEditing[i][0].UserId;
|
||||
userTableUUIDsForEditing.push(userUuid);
|
||||
}
|
||||
var tags = $('textarea#userNamesListInRemoveRolesModal').parent().find(
|
||||
'div.text-tags div.text-tag');
|
||||
if (tags.length > 0)
|
||||
tags.remove();// Remove previous tags
|
||||
$('textarea#userNamesListInRemoveRolesModal').textext()[0].tags().addTags(
|
||||
usersEmails);
|
||||
|
||||
for (var j = 0; j < userTableUUIDsForEditing.length; j++) {
|
||||
var value = userTableUUIDsForEditing[j].toString();
|
||||
$($('#userNamesListInRemoveRolesModal').parent().find('.text-tag')[j]).data(
|
||||
'userUUID', value.substring(5, value.length - 6));
|
||||
}
|
||||
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',
|
||||
function() {
|
||||
|
|
Loading…
Reference in New Issue