SetPermission() public static method

Sets permissions for the list.
public static SetPermission ( ClientContext clientContext, IList assignUserName, IList permissions, string listName ) : bool
clientContext ClientContext Client Context
assignUserName IList Users to give permission
permissions IList Permissions for the users
listName string List name
return bool
Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
                    }
                }
            }
        }
Exemplo n.º 3
0
        /// <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);
        }