public static SetPermission ( ClientContext clientContext, IList |
||
clientContext | ClientContext | Client Context |
assignUserName | IList |
Users to give permission |
permissions | IList |
Permissions for the users |
listName | string | List name |
return | bool |
/// <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> /// Assign or Remove Full Control base on parameter given. /// </summary> /// <param name="clientContext">Client context object</param> /// <param name="matter">Matter object</param> /// <param name="loggedInUser">Name of logged in user</param> /// <param name="listExists">List of existed list</param> /// <param name="listItemId">ID of the list</param> /// <param name="assignFullControl">Flag to determine Assign or Remove Permission</param> public void AssignRemoveFullControl(ClientContext clientContext, Matter matter, string loggedInUser, int listItemId, List <string> listExists, bool assignFullControl, bool hasFullPermission) { IList <IList <string> > currentUser = new List <IList <string> >(); IList <string> currentLoggedInUser = new List <string>() { loggedInUser }; currentUser.Add(currentLoggedInUser); IList <string> permission = new List <string>() { "Full Control" }; if (assignFullControl) { //Assign full control to Matter if (listExists.Contains(matter.Name)) { SPList.SetPermission(clientContext, currentUser, permission, matter.Name); } //Assign full control to OneNote if (listExists.Contains(matter.Name + "_OneNote")) { SPList.SetPermission(clientContext, currentUser, permission, matter.Name + "_OneNote"); } // Assign full control to Task list if (listExists.Contains(matter.Name + "_Task")) { SPList.SetPermission(clientContext, currentUser, permission, matter.Name + "_Task"); } //Assign full control to calendar if (listExists.Contains(matter.Name + "_Calendar")) { SPList.SetPermission(clientContext, currentUser, permission, matter.Name + "_Calendar"); } // Assign full control to Matter Landing page if (0 <= listItemId) { SPList.SetItemPermission(clientContext, currentUser, "Site Pages", listItemId, permission); } } else { if (!hasFullPermission) { //Remove full control to Matter if (listExists.Contains(matter.Name)) { RemoveFullControl(clientContext, matter.Name, loggedInUser, false, -1); } //Remove full control to OneNote if (listExists.Contains(matter.Name + "_OneNote")) { RemoveFullControl(clientContext, matter.Name + "_OneNote", loggedInUser, false, -1); } // Remove full control to Task list if (listExists.Contains(matter.Name + "_Task")) { RemoveFullControl(clientContext, matter.Name + "_Task", loggedInUser, false, -1); } //Remove full control to calendar if (listExists.Contains(matter.Name + "_Calendar")) { RemoveFullControl(clientContext, matter.Name + "_Calendar", loggedInUser, false, -1); } if (0 <= listItemId) { RemoveFullControl(clientContext, "Site Pages", loggedInUser, true, listItemId); } } } }
/// <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); }