mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-14 23:02:19 +00:00
Various bugfixes for the Jabber XMPP method
This commit is contained in:
@@ -3,7 +3,7 @@ def get_api(api):
|
|||||||
try:
|
try:
|
||||||
mod = __import__(api)
|
mod = __import__(api)
|
||||||
except ImportError:
|
except ImportError:
|
||||||
raise DoesNotExist('Error creating service')
|
raise Exception('Error creating service')
|
||||||
|
|
||||||
for i in api.split(".")[1:]:
|
for i in api.split(".")[1:]:
|
||||||
mod = getattr(mod, i)
|
mod = getattr(mod, i)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
from sso.services import BaseService
|
from sso.services import BaseService
|
||||||
import settings
|
import settings
|
||||||
|
|
||||||
if settings.JABBER_METHOD="xmpp":
|
if settings.JABBER_METHOD == "xmpp":
|
||||||
from sso.services.xmppclient import JabberAdmin
|
from sso.services.jabber.xmppclient import JabberAdmin
|
||||||
else:
|
else:
|
||||||
from sso.services.jabber.ejabberdctl import eJabberdCtl
|
from sso.services.jabber.ejabberdctl import eJabberdCtl
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ class JabberService(BaseService):
|
|||||||
'provide_login': False }
|
'provide_login': False }
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
if settings.JABBER_METHOD="xmpp":
|
if settings.JABBER_METHOD == "xmpp":
|
||||||
self.method = "xmpp"
|
self.method = "xmpp"
|
||||||
self.jabberadmin = JabberAdmin(settings.JABBER_SERVER, settings.JABBER_AUTH_USER, settings.JABBER_AUTH_PASSWD)
|
self.jabberadmin = JabberAdmin(settings.JABBER_SERVER, settings.JABBER_AUTH_USER, settings.JABBER_AUTH_PASSWD)
|
||||||
self.jabberadmin.connect()
|
self.jabberadmin.connect()
|
||||||
@@ -23,37 +23,37 @@ class JabberService(BaseService):
|
|||||||
|
|
||||||
def add_user(self, username, password):
|
def add_user(self, username, password):
|
||||||
""" Add user to service """
|
""" Add user to service """
|
||||||
if self.method = "xmpp":
|
if self.method == "xmpp":
|
||||||
return self.jabberadmin.adduser('%s@%s' % (username, settings.JABBER_SERVER), username, password)
|
return self.jabberadmin.adduser('%s@%s' % (username, settings.JABBER_SERVER), password)
|
||||||
else:
|
else:
|
||||||
return self.ejctl.register(username.lower(), settings.JABBER_SERVER, password)
|
return self.ejctl.register(username.lower(), settings.JABBER_SERVER, password)
|
||||||
|
|
||||||
def delete_user(self, username):
|
def delete_user(self, username):
|
||||||
""" Delete a user """
|
""" Delete a user """
|
||||||
if self.method = "xmpp":
|
if self.method == "xmpp":
|
||||||
return self.jabberadmin.deluser('%s@%s' % (username, settings.JABBER_SERVER), username, password)
|
return self.jabberadmin.deluser('%s@%s' % (username, settings.JABBER_SERVER))
|
||||||
else:
|
else:
|
||||||
return self.ejctl.unregister(username.lower(), settings.JABBER_SERVER)
|
return self.ejctl.unregister(username.lower(), settings.JABBER_SERVER)
|
||||||
|
|
||||||
def disable_user(self, username):
|
def disable_user(self, username):
|
||||||
""" Disable a user """
|
""" Disable a user """
|
||||||
if self.method = "xmpp":
|
if self.method == "xmpp":
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return self.ejctl.ban_user(settings.JABBER_SERVER, username.lower())
|
return self.ejctl.ban_user(settings.JABBER_SERVER, username.lower())
|
||||||
|
|
||||||
def enable_user(self, username):
|
def enable_user(self, username):
|
||||||
""" Enable a user """
|
""" Enable a user """
|
||||||
if self.method = "xmpp":
|
if self.method == "xmpp":
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
return self.ejctl.enable_user(settings.JABBER_SERVER, username.lower(), password)
|
return self.ejctl.enable_user(settings.JABBER_SERVER, username.lower(), password)
|
||||||
|
|
||||||
def check_user(self, username):
|
def check_user(self, username):
|
||||||
""" Check if the username exists """
|
""" Check if the username exists """
|
||||||
if self.method = "xmpp":
|
if self.method == "xmpp":
|
||||||
return self.jabberadmin.checkuser("%s@%s" % (username, settings.JABBER_SERVER))
|
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
|
return False
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import time
|
import time
|
||||||
import xmpp
|
import xmpp
|
||||||
|
|
||||||
class JabberAddUser():
|
class JabberAdmin():
|
||||||
""" Adds a jabber user to a remote Jabber server """
|
""" Adds a jabber user to a remote Jabber server """
|
||||||
|
|
||||||
def __init__(self, server, username, password, ip=None):
|
def __init__(self, server, username, password, ip=None):
|
||||||
@@ -101,7 +101,12 @@ class JabberAddUser():
|
|||||||
# Send request and pray for the best
|
# Send request and pray for the best
|
||||||
resp = self._client.SendAndWaitForResponse(iq)
|
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 True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user