Exemple #1
0
        public override void Execute(ExecutionContext context)
        {
            context.AssertRepositoryStarted();

            CheckParameters();

            using (new SystemAccount())
            {
                var path    = (string)context.ResolveVariable(Path);
                var content = Content.Load(path);
                if (content == null)
                {
                    Logger.LogWarningMessage("Content not found: " + path);
                    return;
                }

                var identity = Node.LoadNode(Identity) as ISecurityMember;
                if (identity == null)
                {
                    Logger.LogWarningMessage("Identity not found: " + Identity);
                    return;
                }

                var aclEditor          = SecurityHandler.CreateAclEditor();
                var permissionBitMmask = new PermissionBitMask
                {
                    AllowBits = SecurityHandler.GetPermissionMask(GetPermissionTypes(Allow)),
                    DenyBits  = SecurityHandler.GetPermissionMask(GetPermissionTypes(Deny))
                };

                ChangePermissions(content.Id, identity.Id, aclEditor, permissionBitMmask);

                aclEditor.Apply();
            }
        }
Exemple #2
0
        protected override void ChangePermissions(int contentId, int identityId, SnAclEditor aclEditor, PermissionBitMask permissionBitMmask)
        {
            if (!string.IsNullOrEmpty(Clear))
            {
                var clearBits = SecurityHandler.GetPermissionMask(GetPermissionTypes(Clear));
                aclEditor.Reset(contentId, identityId, LocalOnly,
                                new PermissionBitMask {
                    AllowBits = clearBits, DenyBits = clearBits
                });
            }

            aclEditor.Set(contentId, identityId, LocalOnly, permissionBitMmask);
        }