From b38e784e1aeb0b3f3db4a8a33799c4bd94a5d10a Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Wed, 27 Apr 2011 01:04:03 -0400 Subject: Preliminary work for in-band registration. --- server/user.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'server/user.py') diff --git a/server/user.py b/server/user.py index 2491164..3fbf55c 100644 --- a/server/user.py +++ b/server/user.py @@ -11,22 +11,35 @@ class UserHandler: def __init__(self, root): self.root = root - def register(self, name): - userDir = self.root + '/' + name + def register(self, jid, registration): + userDir = self.root + '/' + jid if os.path.exists(userDir): - logger.error("User {} path already exists".format(name)) + logger.error("User {} path already exists".format(jid)) os.mkdir(userDir) - ObjectWriter(name) + ObjectWriter(jid) + return True - def registered(self, name): - return os.path.exists(self.root + '/' + name) + def registered(self, jid): + return os.path.exists(self.root + '/' + jid) - def unregister(self, name): - shutil.rmtree(self.root + '/' + name) + def unregister(self, jid): + shutil.rmtree(self.root + '/' + jid) def get_user_list(self): return os.listdir(self.root) +def register(self, jid, registration): + username = registration['username'] + + def filter_usernames(user): + return user != jid and self.users[user]['username'] == username + + conflicts = filter(filter_usernames, self.users.keys()) + if conflicts: + return False + + self.users[jid] = registration + return True class User: def __init__(self, name): -- cgit v1.2.3-70-g09d2