in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/matterusers.controller.js [1539:1708]
cm.UpdateMatter = function ($event) {
cm.popupContainerBackground = "Show";
if ($event) {
$event.stopPropagation();
}
var arrUserNames = [],
arrUserEmails = [],
arrTeamMembers = [],
roleInformation = {},
arrReadOnlyUsers = [],
sResponsibleAttorney = [],
sResponsibleAttorneyEmail = [];
var arrBlockUserNames = cm.matterProperties.matterObject.blockUserNames ? cm.matterProperties.matterObject.blockUserNames : ""
var attornyCheck = validateAttornyUserRolesAndPermissions($event);
var validUsersCheck = validateUsers();
if (validUsersCheck) {
var checkUserDExists = validateCheckUserExisits();
if (attornyCheck && validUsersCheck && checkUserDExists) {
angular.forEach(cm.assignPermissionTeams, function (item) {
if ("" !== item.assignedRole && "" !== item.assignedPermission) {
if (roleInformation.hasOwnProperty(item.assignedRole.name)) {
roleInformation[item.assignedRole.name] = roleInformation[item.assignedRole.name] + ";" + item.assignedUser;
}
else {
roleInformation[item.assignedRole.name] = item.assignedUser;
}
}
});
angular.forEach(cm.assignPermissionTeams, function (item) {
arrUserNames.push(getUserName(item.assignedUser.trim() + ";", true));
arrUserEmails.push(getUserName(item.assignedUser.trim() + ";", false));
arrTeamMembers.push(getUserName(item.assignedUser.trim() + ";", true).join(";"));
var User_Upload_Permissions = "Read";
angular.forEach(cm.assignPermissionTeams, function (item) {
if (item.assignedPermission.name.toLowerCase() === User_Upload_Permissions.toLowerCase()) {
arrReadOnlyUsers.push(getUserName(item.assignedUser.trim() + ";", false).join(";"), ";");
}
});
});
validateTeamAssigmentRole();
getArrAssignedUserNamesAndEmails();
var arrRoles = getAssignedUserRoles();
var arrPermissions = getAssignedUserPermissions();
angular.forEach(cm.assignPermissionTeams, function (item) {
if (1 <= cm.assignPermissionTeams.length) {
if ("" !== item.assignedRole && "" !== item.assignedPermission) {
if (-1 !== cm.oMandatoryRoleNames.indexOf(item.assignedRole.name)) {
sResponsibleAttorney.push(getUserName(item.assignedUser + ";", true).join(";"));
sResponsibleAttorneyEmail.push(getUserName(item.assignedUser + ";", false).join(";"));
}
}
}
});
var updatedMatterUsersDetails = [];
var newlyAddedMatterUsers = [];
var usersToRemoveFromMatter = [];
updatedMatterUsersDetails = getUpdatedMatterUserDetails();
newlyAddedMatterUsers = getNewlyAddedMatterUserDetails(updatedMatterUsersDetails);
angular.forEach(newlyAddedMatterUsers, function (newlyAddedUser) {
updatedMatterUsersDetails.push(newlyAddedUser);
});
arrUserNames = []; arrUserEmails = []; arrTeamMembers = [];
arrReadOnlyUsers = []; arrPermissions = []; arrRoles = [];
sResponsibleAttorney = []; sResponsibleAttorneyEmail = [];
if (updatedMatterUsersDetails.length > 0) {
angular.forEach(updatedMatterUsersDetails, function (item) {
arrUserNames.push(getUserName(item.assignedUser.trim() + ";", true));
arrUserEmails.push(getUserName(item.assignedUser.trim() + ";", false));
arrTeamMembers.push(getUserName(item.assignedUser.trim() + ";", true).join(";"));
var User_Upload_Permissions = "Read";
angular.forEach(updatedMatterUsersDetails, function (item) {
if (item.assignedPermission.name.toLowerCase() === User_Upload_Permissions.toLowerCase()) {
//Need to put emails in arrReadOnlyUsers and not roles
arrReadOnlyUsers.push(getUserName(item.assignedUser.trim() + ";", false).join(";"), ";");
}
});
arrPermissions.push(item.assignedPermission.name);
arrRoles.push(item.assignedRole.name);
if (-1 !== cm.oMandatoryRoleNames.indexOf(item.assignedRole.name)) {
sResponsibleAttorney.push(getUserName(item.assignedUser + ";", true).join(";"));
sResponsibleAttorneyEmail.push(getUserName(item.assignedUser + ";", false).join(";"));
}
});
}
console.log(updatedMatterUsersDetails);
usersToRemoveFromMatter = getDeletedUserDetailsFromMatter();
console.log("deleted");
console.log(usersToRemoveFromMatter);
var arrUsersToRemoveFromMatter = [];
angular.forEach(usersToRemoveFromMatter, function (user) {
var userNames = getUserName(user.userName.trim() + ";", false);
userNames = cleanArray(userNames);
arrUsersToRemoveFromMatter.push(userNames);
});
var updatedMatterUsers = {
Client: {
Url: cm.clientUrl,
Id: "",
Name: ""
},
Matter: {
Name: cm.matterName,
BlockUserNames: arrBlockUserNames,
AssignUserNames: arrUserNames,
AssignUserEmails: arrUserEmails,
Permissions: arrPermissions,
IsUsersExternal: cm.isUsersPresentInSystem,
Roles: arrRoles,
Conflict: {
Identified: cm.sConflictScenario
},
FolderNames: [],
DefaultContentType: "",
ContentTypes: [],
Description: "",
Id: "",
MatterGuid: cm.matterProperties.matterObject.matterGuid
},
MatterDetails: {
PracticeGroup: "",
AreaOfLaw: "",
SubareaOfLaw: "",
ResponsibleAttorney: sResponsibleAttorney.join(";").replace(/;;/g, ";"),
ResponsibleAttorneyEmail: sResponsibleAttorneyEmail.join(";").replace(/;;/g, ";"),
UploadBlockedUsers: arrReadOnlyUsers,
TeamMembers: arrTeamMembers.join(";"),
RoleInformation: JSON.stringify(roleInformation)
},
EditMode: cm.isEdit,
UserIds: cm.userIDs,
SerializeMatter: "",
Status: "",
UsersNamesToRemove: arrUsersToRemoveFromMatter,
IsFullControlPresent: cm.isFullControlePresent,
MethodNumber: -1
}
if (arrUserNames.length > 0 || arrUsersToRemoveFromMatter.length > 0) {
cm.successBanner = true;
cm.successMsg = "Updating the user permissions to the " + cm.matterName + " this is may take few minutes..";
updateMatterPermissions(updatedMatterUsers, function (response) {
if (!response.isError) {
var listNumbers = response.description.split(';');
cm.updateSuccessCallList = 0;
updatePermissionsOnMatterLists(updatedMatterUsers, listNumbers, listNumbers.length);
}
});
} else {
cm.popupContainerBackground = "hide";
}
}
else {
cm.popupContainerBackground = "hide";
}
}
else {
cm.popupContainerBackground = "hide";
}
}