Add objects.defaultProcess and "acl" property to it
[py-rsbac] / rsbac / objects.py
index 382c0b1..0186f38 100644 (file)
@@ -572,6 +572,7 @@ class ProcessBase( ObjectWithAttributes ) :
         id.process = process
         self.pid = process
         self._id = byref( id )
+        self.acl = acl.AclById( self )
     def __int__( self ) :
         return int( self.pid )
     def __long__( self ) :
@@ -580,7 +581,10 @@ class ProcessBase( ObjectWithAttributes ) :
         return self is other or ( isinstance( other , ProcessBase )
                                   and self.pid == other.pid )
     def __repr__( self ) :
-        return '<Process %d %r>' % ( self.pid , processName( self.pid ) )
+        if self.pid == 0 :
+            return '<DefaultProcess>'
+        else :
+            return '<Process %d %r>' % ( self.pid , processName( self.pid ) )
 
 Process = buildObjectClass( 'Process' , ( ProcessBase , ) , headers.T_PROCESS , False )
 
@@ -1016,6 +1020,8 @@ defaultSymlink = Symlink( None )
 defaultDirectory = Directory( None )
 defaultDevice = Device( None )
 
+defaultProcess = Process( 0 )
+
 pseudoUsers = new.module( 'pseudoUsers' )
 for k , v in _g_pseudoUsers.items() :
     setattr( pseudoUsers , v , User( k ) )