public static RemoveSpecificUsers ( ClientContext clientContext, List |
||
clientContext | ClientContext | ClientContext object |
usersToRemove | List |
List of users |
loggedInUserTitle | string | |
isListItem | bool | ListItem or list |
listName | string | |
matterLandingPageId | int | List item id |
return | void |
/// <summary> /// Remove old users and assign permissions to new users. /// </summary> /// <param name="clientContext">ClientContext object</param> /// <param name="requestObject">RequestObject</param> /// <param name="client">Client object</param> /// <param name="matter">Matter object</param> /// <param name="users">List of users to remove</param> /// <param name="isListItem">ListItem or list</param> /// <param name="list">List object</param> /// <param name="matterLandingPageId">List item id</param> /// <param name="isEditMode">Add/ Edit mode</param> /// <returns></returns> public static bool UpdatePermission(ClientContext clientContext, Matter matter, List <string> users, string loggedInUserTitle, bool isListItem, string listName, int matterLandingPageId, bool isEditMode) { bool result = false; try { if (null != clientContext && !string.IsNullOrWhiteSpace(listName)) { if (isEditMode) { SPList.RemoveSpecificUsers(clientContext, users, loggedInUserTitle, isListItem, listName, matterLandingPageId); } // Add permission if (!isListItem) { result = SPList.SetPermission(clientContext, matter.AssignUserNames, matter.Permissions, listName); } else { result = SPList.SetItemPermission(clientContext, matter.AssignUserNames, "Site Pages", matterLandingPageId, matter.Permissions); } } } catch (Exception) { throw; } // To avoid the invalid symbol error while parsing the JSON, return the response in lower case return(result); }
/// <summary> /// Reverts the permission of users from matter, OneNote, Calendar libraries and matter landing page /// </summary> /// <param name="requestObject">Request object</param> /// <param name="client">Client object</param> /// <param name="matter">Matter object</param> /// <param name="clientContext">ClientContext object</param> /// <param name="matterRevertListObject">MatterRevertObjectList object</param> /// <param name="loggedInUserTitle">Logged-in user title</param> /// <param name="oldUserPermissions">Old library users</param> /// <param name="matterLandingPageId">List item id</param> /// <param name="isEditMode">Add/ Edit mode</param> /// <returns>Status of operation</returns> public bool RevertMatterUpdates(Client client, Matter matter, ClientContext clientContext, MatterRevertList matterRevertListObject, string loggedInUserTitle, IEnumerable <RoleAssignment> oldUserPermissions, int matterLandingPageId, bool isEditMode) { bool result = false; try { if (null != client && null != matter && null != clientContext && null != matterRevertListObject) { List <string> users = new List <string>(); users = matter.AssignUserNames.SelectMany(user => user).Distinct().ToList(); // Remove recently added users if (null != matterRevertListObject.MatterLibrary) { SPList.RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterLibrary, -1); } if (null != matterRevertListObject.MatterCalendar) { SPList.RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterCalendar, -1); } if (null != matterRevertListObject.MatterOneNoteLibrary) { SPList.RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterOneNoteLibrary, -1); } if (null != matterRevertListObject.MatterTask) { SPList.RemoveSpecificUsers(clientContext, users, loggedInUserTitle, false, matterRevertListObject.MatterTask, -1); } if (null != matterRevertListObject.MatterSitePages) { SPList.RemoveSpecificUsers(clientContext, users, loggedInUserTitle, true, matterRevertListObject.MatterSitePages, matterLandingPageId); } if (isEditMode) { Matter matterRevertUserPermission = PrepareUserPermission(oldUserPermissions); if (null != matterRevertListObject.MatterLibrary) { result = SPList.SetPermission(clientContext, matterRevertUserPermission.AssignUserNames, matterRevertUserPermission.Permissions, matterRevertListObject.MatterLibrary); } if (null != matterRevertListObject.MatterOneNoteLibrary) { result = SPList.SetPermission(clientContext, matterRevertUserPermission.AssignUserNames, matterRevertUserPermission.Permissions, matterRevertListObject.MatterOneNoteLibrary); } if (null != matterRevertListObject.MatterCalendar) { result = SPList.SetPermission(clientContext, matterRevertUserPermission.AssignUserNames, matterRevertUserPermission.Permissions, matterRevertListObject.MatterCalendar); } if (null != matterRevertListObject.MatterTask) { result = SPList.SetPermission(clientContext, matterRevertUserPermission.AssignUserNames, matterRevertUserPermission.Permissions, matterRevertListObject.MatterTask); } if (null != matterRevertListObject.MatterSitePages && 0 <= matterLandingPageId) { result = SPList.SetItemPermission(clientContext, matterRevertUserPermission.AssignUserNames, "Site Pages", matterLandingPageId, matterRevertUserPermission.Permissions); } } } return(result); } catch (Exception exception) { //Logger.LogError(exception, MethodBase.GetCurrentMethod().DeclaringType.Name, MethodBase.GetCurrentMethod().Name, ServiceConstants.LogTableName); } // To avoid the invalid symbol error while parsing the JSON, return the response in lower case return(result); }