zoukankan      html  css  js  c++  java
  • Managing Tasks Permissions Programmatically within SharePoint using event reciever or using special permissions property

    I was writing a workflow using SharePoint designer wherein at certain steps tasks were getting created and assigned to different user. But the problem with that was that any user having appropriate rights on the tasks list was able to edit the task.

    Below are the two methods using which we can have only the assigned to user having the rights on that task.

    It can be done using Event Receiver or within the SharePoint workflow using special permissions property.

    public override void ItemAdded(SPItemEventProperties properties)

            {

                    // Name of the List

                if (properties.ListTitle == “Tasks”)

                {     

                    // Get the SPSite Object

                    SPSite objSite = new SPSite(“http://servername:portname”);       

                    // Point to the top level web site within it

                    SPWeb objWeb = objSite.OpenWeb();

                    // get the task list item getting created

                    SPListItem myListItem = properties.ListItem;       

                    // get the id of the assigned to user

                    // we want that only assigned to user should have full rights on that task

                    string userAssignedTo=myListItem["Assigned To"].ToString();

                    int index = userAssignedTo.IndexOf(‘;’);

                    int id = Int32.Parse(userAssignedTo.Substring(0, index));

                    // get the SPUser from the id

                    SPUser user = objWeb.SiteUsers.GetByID(id);                       

                    // break the role inheritance

                    myListItem.BreakRoleInheritance(false);

                    // webroledefinitions – Full Right, Design, Contribute and Read

                    SPRoleDefinitionCollection webroledefinitions = objWeb.RoleDefinitions;

                    SPRoleAssignment roleassignment = new SPRoleAssignment(user);              

                    roleassignment.RoleDefinitionBindings.Add(webroledefinitions["Full Control"]);

                    myListItem.RoleAssignments.Add(roleassignment);

                    // give full control right to the assigned to user

                    roleassignment.Update();                           

                   }

                }

    Or within workflow as

        // handler for create task activity

            private void createTask1_MethodInvoking(object sender, EventArgs e)

            {

                //Specify properties for the task

                createTask1.TaskProperties.AssignedTo = @”domainusername”;

                createTask1.TaskProperties.Title = @”Please complete the task”;

                createTask1.TaskProperties.Description = “This is sample SharePoint Task”;

                createTask1.TaskProperties.DueDate = DateTime.Now.AddDays(7);

                createTask1.TaskProperties.EmailBody = “This is the sample<b><i> email body </b></i>”;

                createTask1.TaskProperties.SendEmailNotification = true;

                // Define a HybridDictionary object

                HybridDictionary permsCollection = new HybridDictionary();

                // Give Administrator rights to the user to whom the task has been assigned

                permsCollection.Add(createTask1.TaskProperties.AssignedTo, SPRoleType.Administrator);

                // SpecialPermissions -the SpecialPermissions property  in your code will strip out all existing permissions inherited from

                // the parent list(Workflow Task List) and only adds permissions for each pair you added to the hashtable

                createTask1.SpecialPermissions = permsCollection;   

            }

  • 相关阅读:
    语音识别六十年
    神经网络架构PYTORCH-几个概念
    Ubuntu 16.04 系统无法挂载u盘的问题
    技术的止境
    神经网络架构PYTORCH-宏观分析
    Python中parameters与argument区别
    神经网络架构PYTORCH-初相识(3W)
    【ES】学习9-聚合2
    【ES】学习8-聚合1
    【python】中文提取,判断,分词
  • 原文地址:https://www.cnblogs.com/icedog/p/1776894.html
Copyright © 2011-2022 走看看