From ff79cfce0fed38375b8ff459c66648ec014bf4c6 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Fri, 20 May 2011 01:28:09 -0400 Subject: Rewrote the objects storage engine objects are stored under each user's directory to make zaran happy. --- server/user.py | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'server/user.py') diff --git a/server/user.py b/server/user.py index 1cb2d63..7f01149 100644 --- a/server/user.py +++ b/server/user.py @@ -11,22 +11,26 @@ class User: def __init__(self, jid): self.jid = jid - #self.hash = hashlib.sha1(jid).hexdigest() - self.hash = base64.b64encode(jid) + self.hash = hashlib.sha1(jid).hexdigest() def register(self, registration): - ObjectWriter(self.hash).create_root_object(self.jid, registration) - + ObjectWriter('pubkey', self.jid, split_name = False).write(self.jid, registration['pubkey']) + #everybody can read the pubkey + ObjectWriter('pubkey', self.jid, split_name = False).add_user('*', READ) + ObjectWriter('privkey', self.jid, split_name = False).write(self.jid, registration['privkey']) + ObjectWriter(self.hash, self.jid) + def get_registration(self): - registration, key = ObjectReader(self.hash).get_content(self.jid) + registration = {} + registration['pubkey'], ignore = ObjectReader('pubkey',self.jid, split_name = False).get_content(self.jid) + registration['privkey'], ignore = ObjectReader('privkey',self.jid, split_name = False).get_content(self.jid) return registration def is_registered(self): - return Object(self.hash).exists() + return Object(self.hash, self.jid).exists() def unregister(self, jid): - ObjectWriter(self.jid, self.hash).delete() - shutil.rmtree(self.root + '/' + jid) + pass class UserHandler: @@ -34,14 +38,7 @@ class UserHandler: self.root = root def get_user_list(self): - result = [] - for stem in os.listdir(self.root): - for leaf in os.listdir(os.path.join(self.root, stem)): - try: - result.append(base64.b64decode(stem + leaf)) - except TypeError: - logger.error("User tree corrupted") - return result + return os.listdir(self.root) if __name__ == '__main__': print UserHandler('/var/lib/alias').get_user_list() \ No newline at end of file -- cgit v1.2.3-70-g09d2