SenseNet.ContentRepository.Storage.Security.PermissionEvaluator.SetAcl C# (CSharp) 메소드

SetAcl() 개인적인 메소드

private SetAcl ( SnAccessControlList acl ) : SenseNet.ContentRepository.Storage.Security.SecurityEntry[]
acl SnAccessControlList
리턴 SenseNet.ContentRepository.Storage.Security.SecurityEntry[]
        internal SecurityEntry[] SetAcl(SnAccessControlList acl)
        {
            var result = new List<SecurityEntry>();

            //var acl0 = GetAcl(nodeId, path, creatorId);

            foreach (var entry in acl.Entries)
            {
                var values = new PermissionValue[ActiveSchema.PermissionTypes.Count];
                foreach (var perm in entry.Permissions)
                {
                    //var id = ActiveSchema.PermissionTypes[perm.Name].Id;
                    //var allow = perm.AllowFrom == null ? perm.Allow : false;
                    //var deny = perm.DenyFrom == null ? perm.Deny : false;
                    //var value = deny ? PermissionValue.Deny : (allow ? PermissionValue.Allow : PermissionValue.NonDefined);
                    //values[id - 1] = value;

                    var id = ActiveSchema.PermissionTypes[perm.Name].Id;
                    var value = perm.Deny ? PermissionValue.Deny : (perm.Allow ? PermissionValue.Allow : PermissionValue.NonDefined);
                    values[id - 1] = value;
                }

                result.Add(new SecurityEntry(acl.NodeId, entry.Identity.NodeId, entry.Propagates, values));
            }

            return result.ToArray();
        }