Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FileSystemAccessRule.cs
Go to the documentation of this file.
2
4
5public sealed class FileSystemAccessRule : AccessRule
6{
8
10 : this(identity, AccessMaskFromRights(fileSystemRights, type), isInherited: false, InheritanceFlags.None, PropagationFlags.None, type)
11 {
12 }
13
14 public FileSystemAccessRule(string identity, FileSystemRights fileSystemRights, AccessControlType type)
15 : this(new NTAccount(identity), AccessMaskFromRights(fileSystemRights, type), isInherited: false, InheritanceFlags.None, PropagationFlags.None, type)
16 {
17 }
18
19 public FileSystemAccessRule(IdentityReference identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
20 : this(identity, AccessMaskFromRights(fileSystemRights, type), isInherited: false, inheritanceFlags, propagationFlags, type)
21 {
22 }
23
24 public FileSystemAccessRule(string identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
25 : this(new NTAccount(identity), AccessMaskFromRights(fileSystemRights, type), isInherited: false, inheritanceFlags, propagationFlags, type)
26 {
27 }
28
29 internal FileSystemAccessRule(IdentityReference identity, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
30 : base(identity, accessMask, isInherited, inheritanceFlags, propagationFlags, type)
31 {
32 }
33
34 internal static int AccessMaskFromRights(FileSystemRights fileSystemRights, AccessControlType controlType)
35 {
36 if (fileSystemRights < (FileSystemRights)0 || fileSystemRights > FileSystemRights.FullControl)
37 {
38 throw new ArgumentOutOfRangeException("fileSystemRights", System.SR.Format(System.SR.Argument_InvalidEnumValue, fileSystemRights, "FileSystemRights"));
39 }
40 switch (controlType)
41 {
42 case AccessControlType.Allow:
43 fileSystemRights |= FileSystemRights.Synchronize;
44 break;
45 case AccessControlType.Deny:
46 if (fileSystemRights != FileSystemRights.FullControl && fileSystemRights != (FileSystemRights.Modify | FileSystemRights.ChangePermissions | FileSystemRights.TakeOwnership | FileSystemRights.Synchronize))
47 {
48 fileSystemRights &= ~FileSystemRights.Synchronize;
49 }
50 break;
51 }
52 return (int)fileSystemRights;
53 }
54
55 internal static FileSystemRights RightsFromAccessMask(int accessMask)
56 {
57 return (FileSystemRights)accessMask;
58 }
59}
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string Argument_InvalidEnumValue
Definition SR.cs:18
Definition SR.cs:7
FileSystemAccessRule(IdentityReference identity, FileSystemRights fileSystemRights, AccessControlType type)
static FileSystemRights RightsFromAccessMask(int accessMask)
FileSystemAccessRule(IdentityReference identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
FileSystemAccessRule(string identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
FileSystemAccessRule(IdentityReference identity, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
static int AccessMaskFromRights(FileSystemRights fileSystemRights, AccessControlType controlType)
FileSystemAccessRule(string identity, FileSystemRights fileSystemRights, AccessControlType type)