aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2010-11-08 00:57:46 +0100
committerThibaut Horel <thibaut.horel@gmail.com>2010-11-08 00:57:46 +0100
commitb8499306ce329ca3881b1d1dfc3362a3a5c115d0 (patch)
tree1435e50d242ac75af1b4e0edda61f25cf7bf82d9
parentedde6c6fe4ea8953a80b5e7b60d49e14e8ee7938 (diff)
downloadalias-b8499306ce329ca3881b1d1dfc3362a3a5c115d0.tar.gz
Beginning of an ObjectHandler class to handle objects at user level (will be use with xmpp interaction)
-rw-r--r--object.py34
1 files changed, 31 insertions, 3 deletions
diff --git a/object.py b/object.py
index 5b2e35d..de6335b 100644
--- a/object.py
+++ b/object.py
@@ -9,6 +9,8 @@ import datetime
import fileinput
from permission import *
+OBJECT_ROOT = 'objects/'
+
class Object :
def _getPath( self ) :
@@ -135,9 +137,35 @@ class Object :
file = open( self.path + '/permissions', 'a' )
file.write( user + ' ' + str( permission ) + '\n' )
file.close()
-
-
-
+
+class ObjectHandler :
+
+ def __init__( self, user ) :
+ self.user = user
+ self.root = OBJECT_ROOT + user + '/'
+
+ def getDirectory( self, hash ) :
+ directory = self.root + hash[:2] + '/' + hash[2:]
+ if ( os.path.exists( directory ) ) :
+ return directory
+ else :
+ return None
+
+ #return a list of hash,permission pairs
+ def getChildList( self, hash, user) :
+ directory = self.getDirectory( hash )
+ if ( directory ) :
+ result = []
+ file = open( directory + "/childs", 'r' )
+ for line in file :
+ name, sep, perm = line.rstrip('\n').partition(' ')
+ if name == user :
+ result.append( ( name, int(perm) ) )
+ file.close()
+ return result
+ else :
+ return None
+
if __name__== '__main__' :
x = Object({'parent' : 'toto', 'author' : 'Zaran'})
x.setPermission("test", READ )