2003-06-28 Sebastien Pouliot <spouliot@videotron.ca>
[mono.git] / mcs / class / corlib / System.Security.Permissions / FileDialogPermissionAttribute.cs
1 //
2 // System.Security.Permissions.FileDialogPermissionAttribute.cs
3 //
4 // Authors
5 //      Duncan Mak <duncan@ximian.com>
6 //      Sebastien Pouliot <spouliot@motus.com>
7 //
8 // (C) 2002 Ximian, Inc. http://www.ximian.com
9 // Portions Copyright (C) 2003 Motus Technologies (http://www.motus.com)
10 //
11
12 using System;
13 using System.Security.Permissions;
14
15 namespace System.Security.Permissions {
16
17         [AttributeUsage (AttributeTargets.Assembly | AttributeTargets.Class |
18                          AttributeTargets.Struct | AttributeTargets.Constructor |
19                          AttributeTargets.Method)]
20         [Serializable]
21         public sealed class FileDialogPermissionAttribute : CodeAccessSecurityAttribute {
22
23                 // Fields
24                 private bool canOpen;
25                 private bool canSave;
26                 
27                 // Constructor
28                 public FileDialogPermissionAttribute (SecurityAction action) : base (action) {}
29
30                 // Properties
31                 public bool Open {
32                         get { return canOpen; }
33                         set { canOpen = value; }
34                 } 
35
36                 public bool Save {
37                         get { return canSave; }
38                         set { canSave = value; }
39                 }
40
41                 // Methods
42                 public override IPermission CreatePermission ()
43                 {
44                         FileDialogPermissionAccess access = FileDialogPermissionAccess.None;
45                         if (canOpen)
46                                 access |= FileDialogPermissionAccess.Open;
47                         if (canSave)
48                                 access |= FileDialogPermissionAccess.Save;
49                         return new FileDialogPermission (access);
50                 }
51         }
52 }