2008-05-19 George Giolfan <georgegiolfan@yahoo.com>
[mono.git] / mcs / class / corlib / System.Security.AccessControl / FileSystemSecurity.cs
1 //
2 // System.Security.AccessControl.FileSystemSecurity implementation
3 //
4 // Authors:
5 //      Dick Porter  <dick@ximian.com>
6 //      Atsushi Enomoto  <atsushi@ximian.com>
7 //
8 // Copyright (C) 2006-2007 Novell, Inc (http://www.novell.com)
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 // 
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 // 
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29
30 #if NET_2_0
31
32 using System.Security.Principal;
33
34 namespace System.Security.AccessControl {
35
36         public abstract class FileSystemSecurity : NativeObjectSecurity {
37
38                 internal FileSystemSecurity (bool isContainer)
39                         : base (isContainer, ResourceType.FileObject)
40                 {
41                 }
42
43                 internal FileSystemSecurity (bool isContainer, string name, AccessControlSections includeSections)
44                         : base (isContainer, ResourceType.FileObject, name, includeSections)
45                 {
46                 }
47
48                 public override Type AccessRightType {
49                         get { return typeof (FileSystemRights); }
50                 }
51                 
52                 public override Type AccessRuleType {
53                         get { return typeof (FileSystemAccessRule); }
54                 }
55
56                 public override Type AuditRuleType {
57                         get { return typeof (FileSystemAuditRule); }
58                 }
59                 
60                 // AccessRule
61                 
62                 [MonoTODO]
63                 public override sealed AccessRule AccessRuleFactory (IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type)
64                 {
65                         // FIXME: isInherited is unused
66                         return new FileSystemAccessRule (identityReference, (FileSystemRights) accessMask, inheritanceFlags, propagationFlags, type);
67                 }
68                 
69                 [MonoTODO]
70                 public void AddAccessRule (FileSystemAccessRule rule)
71                 {
72                         throw new NotImplementedException ();
73                 }
74                 
75                 [MonoTODO]
76                 public bool RemoveAccessRule (FileSystemAccessRule rule)
77                 {
78                         throw new NotImplementedException ();
79                 }
80                 
81                 [MonoTODO]
82                 public void RemoveAccessRuleAll (FileSystemAccessRule rule)
83                 {
84                         throw new NotImplementedException ();
85                 }
86                 
87                 [MonoTODO]
88                 public void RemoveAccessRuleSpecific (FileSystemAccessRule rule)
89                 {
90                         throw new NotImplementedException ();
91                 }
92                 
93                 [MonoTODO]
94                 public void ResetAccessRule (FileSystemAccessRule rule)
95                 {
96                         throw new NotImplementedException ();
97                 }
98                 
99                 [MonoTODO]
100                 public void SetAccessRule (FileSystemAccessRule rule)
101                 {
102                         throw new NotImplementedException ();
103                 }
104                 
105                 // AuditRule
106                 
107                 [MonoTODO]
108                 public override sealed AuditRule AuditRuleFactory (IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags)
109                 {
110                         // FIXME: isInherited is unused
111                         return new FileSystemAuditRule (identityReference, (FileSystemRights) accessMask, inheritanceFlags, propagationFlags, flags);
112                 }
113                 
114                 [MonoTODO]
115                 public void AddAuditRule (FileSystemAuditRule rule)
116                 {
117                         throw new NotImplementedException ();
118                 }
119                 
120                 [MonoTODO]
121                 public bool RemoveAuditRule (FileSystemAuditRule rule)
122                 {
123                         throw new NotImplementedException ();
124                 }
125                 
126                 [MonoTODO]
127                 public void RemoveAuditRuleAll (FileSystemAuditRule rule)
128                 {
129                         throw new NotImplementedException ();
130                 }
131                 
132                 [MonoTODO]
133                 public void RemoveAuditRuleSpecific (FileSystemAuditRule rule)
134                 {
135                         throw new NotImplementedException ();
136                 }
137                 
138                 [MonoTODO]
139                 public void SetAuditRule (FileSystemAuditRule rule)
140                 {
141                         throw new NotImplementedException ();
142                 }
143         }
144 }
145
146 #endif