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(); } }
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); }