Tuesday, 23 July 2013

Create Permission Level in SharePoint

Create  Permission Level in SharePoint :-

   public void CreatePermissionLevels(bool aOverwriteRoleDefinition)
        {
            SPRoleDefinition aRoleDefinition = null;
            SPBasePermissions aBasePermission;
            SPRoleDefinition spRoleDefinition = null;
            string[] strarrRoleDefName = { "Admin No List Delete"};
            string[] strarrRoleDesc = { "Description of admin No list Delete"};

            try
            {
                using (SPWeb oweb = Site.OpenWeb())
                {
                    aRoleDefinition = oweb.RoleDefinitions.GetByType(SPRoleType.Contributor);
                   aBasePermission = aRoleDefinition.BasePermissions;
                   spRoleDefinition = null;
                    for (int i = 0; i < strarrRoleDefName.Length; i++)
                    {
                        if (!this.SPRoleDefinitionExists(strarrRoleDefName[i], false))
                        {
                            spRoleDefinition = new SPRoleDefinition();
                            switch (strarrRoleDefName[i])
                            {
                                case "Admin No List Delete":
                                    aBasePermission-= SPBasePermissions.ManageLists;
                                    spRoleDefinition.BasePermissions = aBasePermission;
                                    break;
                            }
                            spRoleDefinition.Name = strarrRoleDefName[i];
                            spRoleDefinition.Description = strarrRoleDesc[i];
                            oweb .AllowUnsafeUpdates = true;
                            oweb .RoleDefinitions.Add(spRoleDefinition);
                            oweb .Update();
                            oweb .AllowUnsafeUpdates = false;
                        }
                    }
                }
            }
           
        }

Adding Permission Level to SharePoint Group using C# Code

Adding  Permission Level to  SharePoint Group using C# Code:

private void SetRoleDefinition(string groupName, string permissionLevel)
        {

            SPRoleAssignment roleAssignment = null;
            try
            {
                using (SPWeb oweb =Site.OpenWeb())
                {
                    roleAssignment = new SPRoleAssignment(oweb.SiteGroups[groupName]);
                    roleAssignment.RoleDefinitionBindings.Add(oweb.RoleDefinitions[permissionLevel]);
                    oweb.RoleAssignments.Add(roleAssignment);
                    oweb.AllowUnsafeUpdates = true;
                    oweb.Update();
                    oweb.AllowUnsafeUpdates = false;
                }
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                roleAssignment = null;
            }

        }

Cehck if Group already exsits or not in sharepoint Site

  private bool IsGroupExist(SPGroupCollection groupCollection, string aGroupName)
        {
            SPGroup Group = null;
            try
            {
                Group = groupCollection[aGroupName];
                return true;
            }
            catch
            {
                return false;
            }
        }