aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/object.py4
-rwxr-xr-xserver/server.py6
-rw-r--r--server/user.py5
3 files changed, 8 insertions, 7 deletions
diff --git a/server/object.py b/server/object.py
index 866f7bb..7209cd2 100644
--- a/server/object.py
+++ b/server/object.py
@@ -136,11 +136,11 @@ class Object:
class ObjectHandler:
- def __init__(self, user):
+ def __init__(self, root, user):
self.user = user
self.root_object = hashlib.sha1(user).hexdigest()
- if not os.path.exists(self.user):
+ if not os.path.exists(root + '/' + self.user):
logging.error("User {} root doesn't exist".format(self.user))
def get_object_directory(self, hash):
diff --git a/server/server.py b/server/server.py
index d78552d..c6ddf2b 100755
--- a/server/server.py
+++ b/server/server.py
@@ -36,13 +36,15 @@ class ObjectComponent(ComponentXMPP):
def presence_subscription(self, subscription):
if subscription["type"] == "subscribe":
userJID = subscription["from"].full
- self.userHandler.register(userJID)
+ if not self.userHandler.registered(userJID):
+ self.userHandler.register(userJID)
subscription.reply().send()
self.send_presence(pto = userJID)
self.send_presence_subscription(pto = userJID, ptype = "subscribe")
if subscription["type"] == "unsubscribe":
userJID = subscription["from"].full
- self.userHandler.unregister(userJID)
+ if self.userHandler.registered(userJID):
+ self.userHandler.unregister(userJID)
def presence_probe(self, event):
self.send_presence(pto = event["from"].full)
diff --git a/server/user.py b/server/user.py
index 411ada6..819ad51 100644
--- a/server/user.py
+++ b/server/user.py
@@ -11,9 +11,8 @@ class UserHandler:
def register(self, name):
userDir = self.root + '/' + name
- if not os.path.exists(userDir) :
- os.mkdir(userDir)
- handler = object.ObjectHandler(name)
+ os.mkdir(userDir)
+ handler = object.ObjectHandler(self.root,name)
handler.create_home_node()
def registered(self, name):