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(); } }
internal PermissionChange(SecurityEntity entity, int identityId, EntryType entryType, PermissionBitMask changedBits) { Entity = entity; IdentityId = identityId; EntryType = entryType; ChangedBits = changedBits; }
public void Sharing_AclEd_SetBitmask() { EnsureRepository(); var ctx = CurrentContext.Security; var bitMask = new PermissionBitMask { AllowBits = 0x1Ful, DenyBits = 0x00ul }; ctx.CreateAclEditor(EntryType.Sharing) .Set(Id("E5"), Id("U1"), false, bitMask) .Apply(); var entries = ctx.GetExplicitEntries(Id("E5"), null, EntryType.Sharing); Assert.AreEqual(1, entries.Count); }
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); }
protected virtual void ChangePermissions(int contentId, int identityId, SnAclEditor aclEditor, PermissionBitMask permissionBitMmask) { aclEditor.Reset(contentId, identityId, LocalOnly, PermissionBitMask.All); aclEditor.Set(contentId, identityId, LocalOnly, permissionBitMmask); }