Added acl.EffectiveAclBy{Id,Name} classes.
authorFrédéric Jolliton <git@frederic.jolliton.com>
Fri, 27 Oct 2006 12:56:43 +0000 (12:56 +0000)
committerFrédéric Jolliton <git@frederic.jolliton.com>
Fri, 27 Oct 2006 12:56:43 +0000 (12:56 +0000)
rsbac/acl.py

index e5ec318..d1a8d5c 100644 (file)
@@ -423,6 +423,24 @@ class AclByName( AclBase ) :
     def clear( self ) :
         removeAclByName( self.target )
 
+class EffectiveAclById( AclBase ) :
+    __slots__ = ()
+    def _list( self ) :
+        return getAclTargetListById( self.target )
+    def __iter__( self ) :
+        return ( n[ 0 ] for n in self.__list() )
+    def __getitem__( self , subject ) :
+        return getAclRightsById( self.target , subject , True ) , False
+
+class EffectiveAclByName( AclBase ) :
+    __slots__ = ()
+    def _list( self ) :
+        return getAclTargetListByName( self.target )
+    def __iter__( self ) :
+        return ( n[ 0 ] for n in self.__list() )
+    def __getitem__( self , subject ) :
+        return getAclRightsByName( self.target , subject , True ) , False
+
 #--[ Group ]------------------------------------------------------------------
 
 @export