private static SnAccessControlList CreateFromAccessControlList(AccessControlList acl) { var node = Node.LoadNode(acl.EntityId); var creator = node.CreatedBy; var lasMod = node.ModifiedBy; var result = new SnAccessControlList { NodeId = node.Id, Creator = SnIdentity.Create(node.CreatedById), LastModifier = SnIdentity.Create(node.ModifiedById), Inherits = acl.Inherits, Path = node.Path, Entries = acl.Entries.Select(e => new SnAccessControlEntry { Identity = SnIdentity.Create(e.IdentityId), Propagates = !e.LocalOnly, Permissions = e.Permissions.Select(p => new SnPermission { Name = p.Name, Allow = p.Allow, AllowFrom = p.AllowFrom == 0 ? null : NodeHead.Get(p.AllowFrom).Path, Deny = p.Deny, DenyFrom = p.DenyFrom == 0 ? null : NodeHead.Get(p.DenyFrom).Path }).ToArray() }).ToArray() }; return(result); }
public static SnAccessControlEntry CreateEmpty(int principalId, bool propagates) { var perms = new List <SnPermission>(); foreach (var permType in PermissionType.PermissionTypes) { perms.Add(new SnPermission { Name = permType.Name }); } return(new SnAccessControlEntry { Identity = SnIdentity.Create(principalId), Permissions = perms, Propagates = propagates }); }