Various bugfixes for the Jabber XMPP method

This commit is contained in:
2010-03-04 22:59:20 +01:00
parent 081d7f35d3
commit 732a56d531
3 changed files with 19 additions and 14 deletions

View File

@@ -3,7 +3,7 @@ def get_api(api):
try:
mod = __import__(api)
except ImportError:
raise DoesNotExist('Error creating service')
raise Exception('Error creating service')
for i in api.split(".")[1:]:
mod = getattr(mod, i)

View File

@@ -1,8 +1,8 @@
from sso.services import BaseService
import settings
if settings.JABBER_METHOD="xmpp":
from sso.services.xmppclient import JabberAdmin
if settings.JABBER_METHOD == "xmpp":
from sso.services.jabber.xmppclient import JabberAdmin
else:
from sso.services.jabber.ejabberdctl import eJabberdCtl
@@ -13,7 +13,7 @@ class JabberService(BaseService):
'provide_login': False }
def __init__(self):
if settings.JABBER_METHOD="xmpp":
if settings.JABBER_METHOD == "xmpp":
self.method = "xmpp"
self.jabberadmin = JabberAdmin(settings.JABBER_SERVER, settings.JABBER_AUTH_USER, settings.JABBER_AUTH_PASSWD)
self.jabberadmin.connect()
@@ -23,37 +23,37 @@ class JabberService(BaseService):
def add_user(self, username, password):
""" Add user to service """
if self.method = "xmpp":
return self.jabberadmin.adduser('%s@%s' % (username, settings.JABBER_SERVER), username, password)
if self.method == "xmpp":
return self.jabberadmin.adduser('%s@%s' % (username, settings.JABBER_SERVER), password)
else:
return self.ejctl.register(username.lower(), settings.JABBER_SERVER, password)
def delete_user(self, username):
""" Delete a user """
if self.method = "xmpp":
return self.jabberadmin.deluser('%s@%s' % (username, settings.JABBER_SERVER), username, password)
if self.method == "xmpp":
return self.jabberadmin.deluser('%s@%s' % (username, settings.JABBER_SERVER))
else:
return self.ejctl.unregister(username.lower(), settings.JABBER_SERVER)
def disable_user(self, username):
""" Disable a user """
if self.method = "xmpp":
if self.method == "xmpp":
return False
else:
return self.ejctl.ban_user(settings.JABBER_SERVER, username.lower())
def enable_user(self, username):
""" Enable a user """
if self.method = "xmpp":
if self.method == "xmpp":
return False
else:
return self.ejctl.enable_user(settings.JABBER_SERVER, username.lower(), password)
def check_user(self, username):
""" Check if the username exists """
if self.method = "xmpp":
if self.method == "xmpp":
return self.jabberadmin.checkuser("%s@%s" % (username, settings.JABBER_SERVER))
eif username.lower() not in self.ejctl.get_users(settings.JABBER_SERVER):
elif username.lower() not in self.ejctl.get_users(settings.JABBER_SERVER):
return False
else:
return True

View File

@@ -1,7 +1,7 @@
import time
import xmpp
class JabberAddUser():
class JabberAdmin():
""" Adds a jabber user to a remote Jabber server """
def __init__(self, server, username, password, ip=None):
@@ -101,7 +101,12 @@ class JabberAddUser():
# Send request and pray for the best
resp = self._client.SendAndWaitForResponse(iq)
if resp.getTag('command').getTag('x').getTag('field', attrs={'label': 'Password'}).getTag('value').getData():
try:
val = resp.getTag('command').getTag('x').getTag('field', attrs={'label': 'Password'}).getTag('value').getData()
except AttributeError:
return False
if not val.strip() == '':
return True
return False