public static void CreatePermissionSet(string name, string title, string createActionName, string viewActionName, string modifyActionName, string deleteActionName)
{
ConfigManager configManager = ConfigManager.GetManager();
SecurityConfig securityConfig = configManager.GetSection<SecurityConfig>();
ConfigElementDictionary<string, Telerik.Sitefinity.Security.Configuration.Permission> permissionSetConfig = securityConfig.Permissions;
if (!permissionSetConfig.ContainsKey(name))
{
var permissionSet = new Telerik.Sitefinity.Security.Configuration.Permission(permissionSetConfig)
{
Name = name,
Title = title,
Description = title,
ResourceClassId = string.Empty,
};
permissionSetConfig.Add(permissionSet);
//Create action
SecurityAction createAction = new SecurityAction(permissionSetConfig)
{
Name = createActionName,
Type = SecurityActionTypes.Create,
Title = createActionName,
Description = createActionName,
ResourceClassId = string.Empty,
};
permissionSet.Actions.Add(createAction);
//View action
SecurityAction viewAction = new SecurityAction(permissionSetConfig)
{
Name = viewActionName,
Type = SecurityActionTypes.View,
Title = viewActionName,
Description = viewActionName,
ResourceClassId = string.Empty,
};
permissionSet.Actions.Add(viewAction);
//Modify action
SecurityAction modifyAction = new SecurityAction(permissionSetConfig)
{
Name = modifyActionName,
Type = SecurityActionTypes.Modify,
Title = modifyActionName,
Description = modifyActionName,
ResourceClassId = string.Empty,
};
permissionSet.Actions.Add(modifyAction);
//Delete action
SecurityAction deleteAction = new SecurityAction(permissionSetConfig)
{
Name = deleteActionName,
Type = SecurityActionTypes.Delete,
Title = deleteActionName,
Description = deleteActionName,
ResourceClassId = string.Empty,
};
permissionSet.Actions.Add(deleteAction);
configManager.SaveSection(securityConfig);
}
}