2009-12-21 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / corlib / System.Security.AccessControl / CommonSecurityDescriptor.cs
1 //
2 // System.Security.AccessControl.CommonSecurityDescriptor implementation
3 //
4 // Author:
5 //      Dick Porter  <dick@ximian.com>
6 //
7 // Copyright (C) 2006 Novell, Inc (http://www.novell.com)
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28
29 using System.Security.Principal;
30
31 namespace System.Security.AccessControl {
32         public sealed class CommonSecurityDescriptor : GenericSecurityDescriptor
33         {
34                 bool isContainer;
35                 bool isDS;
36                 ControlFlags flags;
37                 SecurityIdentifier owner;
38                 SecurityIdentifier group;
39                 SystemAcl systemAcl;
40                 DiscretionaryAcl discretionaryAcl;
41                 
42                 public CommonSecurityDescriptor (bool isContainer, bool isDS, RawSecurityDescriptor rawSecurityDescriptor)
43                 {
44                         throw new NotImplementedException ();
45                 }
46                 
47                 public CommonSecurityDescriptor (bool isContainer, bool isDS, string sddlForm)
48                 {
49                         throw new NotImplementedException ();
50                 }
51                 
52                 public CommonSecurityDescriptor (bool isContainer, bool isDS, byte[] binaryForm, int offset) 
53                 {
54                         throw new NotImplementedException ();
55                 }
56                 
57                 public CommonSecurityDescriptor (bool isContainer, bool isDS,
58                                                  ControlFlags flags,
59                                                  SecurityIdentifier owner,
60                                                  SecurityIdentifier group,
61                                                  SystemAcl systemAcl,
62                                                  DiscretionaryAcl discretionaryAcl)
63                 {
64                         this.isContainer = isContainer;
65                         this.isDS = isDS;
66                         this.flags = flags;
67                         this.owner = owner;
68                         this.group = group;
69                         this.systemAcl = systemAcl;
70                         this.discretionaryAcl = discretionaryAcl;
71                         
72                         throw new NotImplementedException ();
73                 }
74                 
75                 public override ControlFlags ControlFlags
76                 {
77                         get {
78                                 return(flags);
79                         }
80                 }
81                 
82                 public DiscretionaryAcl DiscretionaryAcl
83                 {
84                         get {
85                                 return(discretionaryAcl);
86                         }
87                         set {
88                                 if (value == null) {
89                                         /* FIXME: add a "full access" ACE */
90                                 }
91                                 
92                                 discretionaryAcl = value;
93                         }
94                 }
95                 
96                 public override SecurityIdentifier Group
97                 {
98                         get {
99                                 return(group);
100                         }
101                         set {
102                                 group = value;
103                         }
104                 }
105
106                 public bool IsContainer
107                 {
108                         get {
109                                 return(isContainer);
110                         }
111                 }
112                 
113                 public bool IsDiscretionaryAclCanonical
114                 {
115                         get {
116                                 throw new NotImplementedException ();
117                         }
118                 }
119                 
120                 public bool IsDS
121                 {
122                         get {
123                                 return(isDS);
124                         }
125                 }
126                 
127                 public bool IsSystemAclCanonical
128                 {
129                         get {
130                                 throw new NotImplementedException ();
131                         }
132                 }
133                 
134                 public override SecurityIdentifier Owner
135                 {
136                         get {
137                                 return(owner);
138                         }
139                         set {
140                                 owner = value;
141                         }
142                 }
143                 
144                 public SystemAcl SystemAcl
145                 {
146                         get {
147                                 return(systemAcl);
148                         }
149                         set {
150                                 systemAcl = value;
151                         }
152                 }
153                 
154                 public void PurgeAccessControl (SecurityIdentifier sid)
155                 {
156                         throw new NotImplementedException ();
157                 }
158                 
159                 public void PurgeAudit (SecurityIdentifier sid)
160                 {
161                         throw new NotImplementedException ();
162                 }
163                 
164                 public void SetDiscretionaryAclProtection (bool isProtected,
165                                                            bool preserveInheritance)
166                 {
167                         throw new NotImplementedException ();
168                 }
169                 
170                 public void SetSystemAclProtection (bool isProtected,
171                                                     bool preserveInheritance)
172                 {
173                         throw new NotImplementedException ();
174                 }
175         }
176 }
177