in tree/master/cloud/src/solution/Microsoft.Legal.MatterCenter.Web/wwwroot/app/matter/matterusers.controller.js [1881:2248]
cm.UpdateMatterUser = function ($event, assignTeam) {
// if (assignTeam.assignedUser && assignTeam.assignedUser != "") {
var attornyCheck = true; // validateAttornyUserRolesAndPermissions($event, assignTeam);
attornyCheck = validateAttornyUserRolesAndPermission1(assignTeam, 'txtUser', 'save');
if (attornyCheck) {
cm.disableControls = true;
assignTeam.status = "";
cm.isFullControlePresent = true;
assignTeam.disable = true;
cm.canDeleteTheUser = true;
assignTeam.updatedMatterUsersForMatter = {};
assignTeam.updatedMatterUsersForOneNote = {};
assignTeam.updatedMatterUsersForCalender = {};
assignTeam.updatedMatterUsersForTask = {};
assignTeam.updatedMatterUsersForSpecifiedList = {};
assignTeam.updatedMatterUsersForStampedProp = {};
assignTeam.updateSuccessCallList = 0;
// cm.popupContainerBackground = "Show";
if ($event) {
$event.stopPropagation();
}
var arrUserNames = [],
arrUserEmails = [],
arrTeamMembers = [],
roleInformation = {},
arrReadOnlyUsers = [],
sResponsibleAttorney = [],
sResponsibleAttorneyEmail = [];
var arrRoles = [];
var arrPermissions = [];
var arrBlockUserNames = cm.matterProperties.matterObject.blockUserNames ? cm.matterProperties.matterObject.blockUserNames : ""
var attornyCheck = true;
if (!cm.globalSettings.isBackwardCompatible)
{ attornyCheck = validateTeamRoleAndPermission(assignTeam); }
var validUsersCheck = validateSingleRowUsers(assignTeam);
if (validUsersCheck) {
var checkUserDExists = validateUserExisitsSingleRow(assignTeam);
if (attornyCheck && validUsersCheck && checkUserDExists) {
if ("" !== assignTeam.assignedRole && "" !== assignTeam.assignedPermission) {
if (roleInformation.hasOwnProperty(assignTeam.assignedRole.name)) {
roleInformation[assignTeam.assignedRole.name] = roleInformation[assignTeam.assignedRole.name] + ";" + assignTeam.assignedUser;
}
else {
roleInformation[assignTeam.assignedRole.name] = assignTeam.assignedUser;
}
}
}
arrUserNames.push(getUserName(assignTeam.assignedUser.trim() + ";", true));
arrUserEmails.push(getUserName(assignTeam.assignedUser.trim() + ";", false));
arrTeamMembers.push(getUserName(assignTeam.assignedUser.trim() + ";", true).join(";"));
var User_Upload_Permissions = "Read";
if (assignTeam.assignedPermission.name.toLowerCase() === User_Upload_Permissions.toLowerCase()) {
arrReadOnlyUsers.push(getUserName(assignTeam.assignedUser.trim() + ";", false).join(";"), ";");
}
cm.userIDs = [];
cm.userIDs.push("txtAssign" + assignTeam.assigneTeamRowNumber);
arrRoles.push(assignTeam.assignedRole.name);
arrPermissions.push(assignTeam.assignedPermission.name);
if (assignTeam.assignedRole.mandatory) {
sResponsibleAttorney.push(getUserName(assignTeam.assignedUser + ";", true).join(";"));
sResponsibleAttorneyEmail.push(getUserName(assignTeam.assignedUser + ";", false).join(";"));
}
var arrUsersToRemoveFromMatter = [];
var usersToRemoveFromMatter = getDeletedUserDetailsFromMatter();
var arrUsersToRemoveFromMatter = [];
angular.forEach(usersToRemoveFromMatter, function (user) {
var userNames = getUserName(user.userName.trim() + ";", false);
userNames = cleanArray(userNames);
arrUsersToRemoveFromMatter.push(userNames);
});
assignTeam.updatedMatterUsersForMatter = {
Client: {
Url: cm.clientUrl,
Id: "",
Name: ""
},
Matter: {
Name: cm.matterName,
BlockUserNames: arrBlockUserNames,
AssignUserNames: arrUserNames,
AssignUserEmails: arrUserEmails,
Permissions: arrPermissions,
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,
MatterAssociatedInfo: "MatterLibrary"
}
assignTeam.updatedMatterUsersForOneNote = {
Client: {
Url: cm.clientUrl,
Id: "",
Name: ""
},
Matter: {
Name: cm.matterName,
BlockUserNames: arrBlockUserNames,
AssignUserNames: arrUserNames,
AssignUserEmails: arrUserEmails,
Permissions: arrPermissions,
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,
MatterAssociatedInfo: "_OneNote"
}
assignTeam.updatedMatterUsersForCalender = {
Client: {
Url: cm.clientUrl,
Id: "",
Name: ""
},
Matter: {
Name: cm.matterName,
BlockUserNames: arrBlockUserNames,
AssignUserNames: arrUserNames,
AssignUserEmails: arrUserEmails,
Permissions: arrPermissions,
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,
MatterAssociatedInfo: "_Calendar"
}
assignTeam.updatedMatterUsersForTask = {
Client: {
Url: cm.clientUrl,
Id: "",
Name: ""
},
Matter: {
Name: cm.matterName,
BlockUserNames: arrBlockUserNames,
AssignUserNames: arrUserNames,
AssignUserEmails: arrUserEmails,
Permissions: arrPermissions,
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,
MatterAssociatedInfo: "_Task"
}
assignTeam.updatedMatterUsersForSpecifiedList = {
Client: {
Url: cm.clientUrl,
Id: "",
Name: ""
},
Matter: {
Name: cm.matterName,
BlockUserNames: arrBlockUserNames,
AssignUserNames: arrUserNames,
AssignUserEmails: arrUserEmails,
Permissions: arrPermissions,
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,
MatterAssociatedInfo: "MatterPage"
}
assignTeam.updatedMatterUsersForStampedProp = {
Client: {
Url: cm.clientUrl,
Id: "",
Name: ""
},
Matter: {
Name: cm.matterName,
BlockUserNames: arrBlockUserNames,
AssignUserNames: arrUserNames,
AssignUserEmails: arrUserEmails,
Permissions: arrPermissions,
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,
MatterAssociatedInfo: "StampedProperties"
}
for (var i = 0; i < cm.matterList.length; i++) {
var listName = cm.matterList[i].toLowerCase();
switch (listName.toLowerCase()) {
case "matterlibrary":
updateUserPermissionOnMatterListForRow(assignTeam);
break;
case "_onenote":
updateUserPermissionOnMatterOneNoteListForRow(assignTeam);
break;
case "_calendar":
updateUserPermissionOnMatterCalendarListForRow(assignTeam);
break;
case "_task":
updateUserPermissionOnMatterTaskListForRow(assignTeam);
break;
case "matterpage":
updateUserPermissionOnMatterSpecifiedListForRow(assignTeam);
break;
}
}
}
else {
assignTeam.disable = false;
cm.canDeleteTheUser = false;
assignTeam.status = "add";
cm.disableControls = false;
}
}
else {
cm.disableControls = false;
}
// }
}