2005-09-08 Peter Dennis Bartok <pbartok@novell.com>
[mono.git] / mcs / class / System.Data.OracleClient / System.Data.OracleClient / OraclePermission.cs
1 //
2 // OraclePermission.cs 
3 //
4 // Part of the Mono class libraries at
5 // mcs/class/System.Data.OracleClient/System.Data.OracleClient
6 //
7 // Assembly: System.Data.OracleClient.dll
8 // Namespace: System.Data.OracleClient
9 //
10 // Authors:
11 //      Tim Coleman <tim@timcoleman.com>
12 //      Sebastien Pouliot  <sebastien@ximian.com>
13 //
14 // Copyright (C) Tim Coleman, 2003
15 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
16 //
17 // Licensed under the MIT/X11 License.
18 //
19
20 using System.Collections;
21 using System.Data.Common;
22 using System.Security;
23 using System.Security.Permissions;
24
25 namespace System.Data.OracleClient {
26
27 #if NET_2_0
28         [Serializable]
29         [MonoTODO ("Current MS implementation of Data Provider requires FullTrust")]
30         public sealed class OraclePermission : DBDataPermission {
31
32                 public OraclePermission (PermissionState state)
33                         : base (state)
34                 {
35                 }
36
37                 // required for Copy method
38                 internal OraclePermission (DBDataPermission permission)
39                         : base (permission)
40                 {
41                 }
42
43                 // easier (and common) permission creation from attribute class
44                 internal OraclePermission (DBDataPermissionAttribute attribute)
45                         : base (attribute)
46                 {
47                 }
48
49                 [MonoTODO ("overridden for what ? additional validations ???")]
50                 protected override void AddConnectionString (string connectionString, string restrictions, 
51                         KeyRestrictionBehavior behavior, Hashtable synonyms, bool useFirstKeyValue)
52                 {
53                         base.AddConnectionString (connectionString, restrictions, behavior, synonyms, useFirstKeyValue);
54                 }
55
56                 public override IPermission Copy ()
57                 {
58                         return new OraclePermission (this);
59                 }
60         }
61 #else
62         [Serializable]
63         [MonoTODO ("Current MS implementation of Data Provider requires FullTrust")]
64         public sealed class OraclePermission : CodeAccessPermission, IUnrestrictedPermission {
65
66                 #region Fields
67
68                 bool allowBlankPassword;
69                 PermissionState state;
70
71                 #endregion // Fields
72
73                 #region Constructors
74
75                 public OraclePermission (PermissionState state)
76                 {
77                         this.state = state;
78                 }
79
80                 // easier (and common) permission creation from attribute class
81                 internal OraclePermission (OraclePermissionAttribute attribute)
82                 {
83                         if (attribute.Unrestricted) {
84                                 state = PermissionState.Unrestricted;
85                         }
86                         else {
87                                 state = PermissionState.None;
88                                 allowBlankPassword = attribute.AllowBlankPassword;
89                         }
90                 }
91
92                 #endregion // Constructors
93
94                 #region Properties
95
96                 public bool AllowBlankPassword {
97                         get { return allowBlankPassword; }
98                         set { allowBlankPassword = value; }
99                 }
100
101                 #endregion // Properties
102
103                 #region Methods
104
105                 public override IPermission Copy ()
106                 {
107                         OraclePermission copy = (OraclePermission) Activator.CreateInstance (this.GetType ());
108                         copy.AllowBlankPassword = allowBlankPassword;
109                         copy.state = state;
110                         return copy;
111                 }
112
113                 // Note: No exception are thrown here to help the security runtime performance
114
115                 [MonoTODO]
116                 public override void FromXml (SecurityElement securityElement)
117                 {
118                 }
119
120                 [MonoTODO]
121                 public override IPermission Intersect (IPermission target)
122                 {
123                         return null;
124                 }
125
126                 [MonoTODO]
127                 public override bool IsSubsetOf (IPermission target)
128                 {
129                         return false;
130                 }
131
132                 public bool IsUnrestricted ()
133                 {
134                         return (state == PermissionState.Unrestricted);
135                 }
136
137                 [MonoTODO]
138                 public override SecurityElement ToXml ()
139                 {
140                         return new SecurityElement ("IPermission");
141                 }
142
143                 [MonoTODO]
144                 public override IPermission Union (IPermission target)
145                 {
146                         return null;
147                 }
148
149                 #endregion // Methods
150         }
151 #endif
152 }