aboutsummaryrefslogtreecommitdiffstats
path: root/server/user.py
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2011-05-20 01:28:09 -0400
committerGuillaume Horel <guillaume.horel@gmail.com>2011-05-20 01:28:09 -0400
commitff79cfce0fed38375b8ff459c66648ec014bf4c6 (patch)
tree869d0ddc747986d0cb47ce8300ad59d379071b08 /server/user.py
parent3565d0c362646d681cbac605924fcf7984b05a92 (diff)
downloadalias-ff79cfce0fed38375b8ff459c66648ec014bf4c6.tar.gz
Rewrote the objects storage engine
objects are stored under each user's directory to make zaran happy.
Diffstat (limited to 'server/user.py')
-rw-r--r--server/user.py29
1 files changed, 13 insertions, 16 deletions
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