public override ModelNode ReverseSingleHost(object reverseHost, ReverseOptions options) { var item = (reverseHost as SecurityRoleReverseHost).HostRole; var def = new SecurityRoleDefinition(); def.Name = item.Name; def.Description = item.Description; var allPermissionNames = Enum.GetNames(typeof(PermissionKind)); foreach (var permissionName in allPermissionNames) { var permissionValue = (PermissionKind)Enum.Parse(typeof(PermissionKind), permissionName, true); if (item.BasePermissions.Has(permissionValue)) { if (permissionValue != PermissionKind.EmptyMask) def.BasePermissions.Add(permissionName); } } return new SecurityRoleModelNode { Options = { RequireSelfProcessing = true }, Value = def }; }
public static ModelNode AddSecurityRoleLink(this ModelNode model, SecurityRoleDefinition definition, Action<ModelNode> action) { var roleLinkDefinition = new SecurityRoleLinkDefinition { SecurityRoleName = definition.Name }; return model.AddSecurityRoleLink(roleLinkDefinition, action); }
public static ModelNode AddSecurityRole(this ModelNode model, SecurityRoleDefinition definition, Action<ModelNode> action) { return model.AddDefinitionNode(definition, action); }
public static ModelNode AddSecurityRole(this ModelNode model, SecurityRoleDefinition definition) { return AddSecurityRole(model, definition, null); }
public void Deploy_SecurityRoles() { // Step 1, define security groups var customerSupport = new SecurityRoleDefinition { Name = "Customer support role", Description = "Customer support team." }; var customerReviewers = new SecurityRoleDefinition { Name = "Customer reviewers role", Description = "Customer reviewers team." }; // Step 2, define web model and artifact relationships - add security groups t the web var model = SPMeta2Model .NewSiteModel(site => { site .AddSecurityRole(customerSupport) .AddSecurityRole(customerReviewers); }); // Step 3, deploy model DeploySiteModel(model); }