diff --git a/sso/services/__init__.py b/sso/services/__init__.py index 07aab61..25cebd6 100644 --- a/sso/services/__init__.py +++ b/sso/services/__init__.py @@ -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) diff --git a/sso/services/jabber/__init__.py b/sso/services/jabber/__init__.py index d2a86bf..fb180e4 100644 --- a/sso/services/jabber/__init__.py +++ b/sso/services/jabber/__init__.py @@ -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 diff --git a/sso/services/jabber/xmppclient.py b/sso/services/jabber/xmppclient.py index 46a0bc2..edc9d56 100644 --- a/sso/services/jabber/xmppclient.py +++ b/sso/services/jabber/xmppclient.py @@ -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