aboutsummaryrefslogtreecommitdiffstats
path: root/alias_server/user.py
diff options
context:
space:
mode:
Diffstat (limited to 'alias_server/user.py')
-rw-r--r--alias_server/user.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/alias_server/user.py b/alias_server/user.py
new file mode 100644
index 0000000..f6800f9
--- /dev/null
+++ b/alias_server/user.py
@@ -0,0 +1,45 @@
+import os
+import os.path
+import shutil
+import hashlib
+import logging
+logger = logging.getLogger(__name__)
+from object import *
+import base64
+
+class User:
+
+ def __init__(self, jid):
+ self.jid = jid
+ self.hash = hashlib.sha256(jid).hexdigest()
+ #self.hash = hashlib.md5(jid).hexdigest()
+
+ def register(self, 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 = {}
+ 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, self.jid).exists()
+
+ def unregister(self, jid):
+ pass
+
+class UserHandler:
+
+ def __init__(self, root):
+ self.root = root
+
+ def get_user_list(self):
+ return os.listdir(self.root)
+
+if __name__ == '__main__':
+ print UserHandler('/var/lib/alias').get_user_list() \ No newline at end of file