The code below shows how to programmatically create a custom permission level for a specific SharePoint site :
using (SPSite osite = properties.Feature.Parent as SPSite) { using (SPWeb oweb = osite.OpenWeb()) { SPRoleDefinition roleDefinition = new SPRoleDefinition(); roleDefinition.Name = "Custom Permission Level"; roleDefinition.Description = "This Permission level has custom set of rights defined within it"; roleDefinition.BasePermissions = SPBasePermissions.AddAndCustomizePages | SPBasePermissions.ApplyStyleSheets | SPBasePermissions.CreateGroups; oweb.RoleDefinitions.Add(roleDefinition); } }