Inheritance: PermissionBits
Example #1
0
 private string SearchFirstPath(string aclPath, PermissionInfo basePermInfo, PermissionSet permSet, int mask, bool deny)
 {
     string lastPath = basePermInfo.Path;
     for (var permInfo = basePermInfo; permInfo != null; permInfo = permInfo.Inherits ? permInfo.Parent : null)
     {
         var entry = permInfo.GetExplicitEntry(permSet.PrincipalId);
         if (entry != null)
         {
             var bit = mask & (deny ? entry.DenyBits : entry.AllowBits);
             if (bit == 0)
                 break;
             lastPath = permInfo.Path;
         }
     }
     return aclPath == lastPath ? null : lastPath;
 }
Example #2
0
 internal void Combine(PermissionSet permissionSet)
 {
     AllowBits |= permissionSet.AllowBits;
     DenyBits |= permissionSet.DenyBits;
 }
Example #3
0
        public void SetPermission(ISecurityMember securityMember, bool isInheritable, PermissionType permissionType, PermissionValue permissionValue)
        {
            if (securityMember == null)
                throw new ArgumentNullException("securityMember");
            if (permissionType == null)
                throw new ArgumentNullException("permissionType");

            Assert(PermissionType.SetPermissions);

            var entry = PermissionEvaluator.Instance.GetExplicitEntry(this._node.Path, securityMember.Id);
            var allowBits = 0;
            var denyBits = 0;
            if (entry != null)
            {
                allowBits = entry.AllowBits;
                denyBits = entry.DenyBits;
            }
            SetBits(ref allowBits, ref denyBits, permissionType, permissionValue);

            var memberId = securityMember.Id;
            var permSet = new PermissionSet(memberId, isInheritable, allowBits, denyBits);
            entry = permSet.ToEntry(this.NodeId);

            DataProvider.Current.SetPermission(entry);

            Reset();
        }
Example #4
0
 private void RemoveExplicitEntriesWithoutReset()
 {
     foreach (var entry in GetExplicitEntries())
     {
         var e = new PermissionSet(entry.PrincipalId, true, 0, 0).ToEntry(entry.DefinedOnNodeId);
         DataProvider.Current.SetPermission(e);
     }
 }
Example #5
0
        private void SetPermissionsWithoutReset(int principalId, bool isInheritable, PermissionValue[] permissionValues)
        {
            var permSet = new PermissionSet(principalId, isInheritable, permissionValues);
            var allowBits = permSet.AllowBits;
            var denyBits = permSet.DenyBits;
            
            SetBits(ref allowBits, ref denyBits);
            permSet = new PermissionSet(principalId, isInheritable, allowBits, denyBits);
            var entry = permSet.ToEntry(NodeId);

            DataProvider.Current.SetPermission(entry);
        }
Example #6
0
 private void AddPermissionSet(string path, int id, int creator, int lastModifier, bool inherited, PermissionSet entry)
 {
     if (!permissionTable.ContainsKey(path))
         permissionTable.Add(path, CreatePermissionInfo(path, id, creator, lastModifier, inherited));
     permissionTable[path].PermissionSets.Add(entry);
 }