X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mcs%2Fclass%2Fcorlib%2FSystem.Security.AccessControl%2FObjectSecurity_T.cs;h=4bed60fc3b93acbda77c62ddc51f284fc284254c;hb=2002994d0c06860d22253edbb7bae0ddcda7df44;hp=2f002577adad74761de26e2dcc8f7864eb50faab;hpb=5157b11ed11074c41ecb976082cdfa0e707c77b4;p=mono.git diff --git a/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs b/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs index 2f002577ada..4bed60fc3b9 100644 --- a/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs +++ b/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs @@ -1,7 +1,12 @@ // // System.Security.AccessControl.ObjectSecurity // +// Authors: +// ? +// James Bellinger +// // Copyright (C) 2009 Novell, Inc (http://www.novell.com) +// Copyright (C) 2012 James Bellinger // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the @@ -23,7 +28,6 @@ // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -#if NET_4_0 using System.Runtime.InteropServices; using System.Security.Principal; @@ -32,11 +36,6 @@ namespace System.Security.AccessControl { public abstract class ObjectSecurity : NativeObjectSecurity where T : struct { - internal ObjectSecurity () - { - - } - protected ObjectSecurity (bool isContainer, ResourceType resourceType) : base (isContainer, resourceType) @@ -87,34 +86,106 @@ namespace System.Security.AccessControl } public override Type AccessRightType { - get { - return typeof(T); - } + get { return typeof (T); } } public override Type AccessRuleType { - get { - return typeof (AccessRule); - } + get { return typeof (AccessRule); } } public override Type AuditRuleType { - get { - return typeof (AuditRule); - } + get { return typeof (AuditRule); } } - public override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type) + public override AccessRule AccessRuleFactory(IdentityReference identityReference, int accessMask, + bool isInherited, InheritanceFlags inheritanceFlags, + PropagationFlags propagationFlags, AccessControlType type) { return new AccessRule (identityReference, accessMask, isInherited, inheritanceFlags, propagationFlags, type); } - public override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, bool isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AuditFlags flags) + public virtual void AddAccessRule (AccessRule rule) + { + AddAccessRule ((AccessRule)rule); + } + + public virtual bool RemoveAccessRule (AccessRule rule) + { + return RemoveAccessRule ((AccessRule)rule); + } + + public virtual void RemoveAccessRuleAll (AccessRule rule) + { + RemoveAccessRuleAll ((AccessRule)rule); + } + + public virtual void RemoveAccessRuleSpecific (AccessRule rule) + { + RemoveAccessRuleSpecific ((AccessRule)rule); + } + + public virtual void ResetAccessRule (AccessRule rule) + { + ResetAccessRule ((AccessRule)rule); + } + + public virtual void SetAccessRule (AccessRule rule) + { + SetAccessRule ((AccessRule)rule); + } + + public override AuditRule AuditRuleFactory(IdentityReference identityReference, int accessMask, + bool isInherited, InheritanceFlags inheritanceFlags, + PropagationFlags propagationFlags, AuditFlags flags) { return new AuditRule (identityReference, accessMask, isInherited, inheritanceFlags, propagationFlags, flags); } + + public virtual void AddAuditRule (AuditRule rule) + { + AddAuditRule ((AuditRule)rule); + } + + public virtual bool RemoveAuditRule (AuditRule rule) + { + return RemoveAuditRule((AuditRule)rule); + } + + public virtual void RemoveAuditRuleAll (AuditRule rule) + { + RemoveAuditRuleAll((AuditRule)rule); + } + + public virtual void RemoveAuditRuleSpecific (AuditRule rule) + { + RemoveAuditRuleSpecific((AuditRule)rule); + } + + public virtual void SetAuditRule (AuditRule rule) + { + SetAuditRule((AuditRule)rule); + } + + protected void Persist (SafeHandle handle) + { + WriteLock (); + try { + Persist (handle, AccessControlSectionsModified); + } finally { + WriteUnlock (); + } + } + + protected void Persist (string name) + { + WriteLock (); + try { + Persist (name, AccessControlSectionsModified); + } finally { + WriteUnlock (); + } + } } } -#endif