diff --git a/sso/models.py b/sso/models.py index b944025..d1a8458 100644 --- a/sso/models.py +++ b/sso/models.py @@ -239,9 +239,11 @@ class ServiceAccount(models.Model): break reddit = RedditAccount.objects.filter(user=self.user) - self.service_uid = api.add_user(self.username, self.password, user=self.user, character=self.character, eveapi=eveapi, reddit=reddit) - if not self.service_uid: + d = api.add_user(self.username, self.password, user=self.user, character=self.character, eveapi=eveapi, reddit=reddit) + if not d: raise ServiceError('Error occured while trying to create the Service Account, please try again later') + else: + self.service_uid = d['username'] else: raise ExistingUser('Username %s has already been took' % self.username) else: diff --git a/sso/services/__init__.py b/sso/services/__init__.py index 5cbe982..3edce28 100644 --- a/sso/services/__init__.py +++ b/sso/services/__init__.py @@ -32,8 +32,8 @@ class BaseService(): 'provide_login': False } def add_user(self, username, password, **kwargs): - """ Add a user, returns a UID for that user """ - return username + """ Add a user, returns a dict for that user """ + return { 'username': username, 'password': password } def check_user(self, username): """ Check if the username exists """ diff --git a/sso/services/jabber/__init__.py b/sso/services/jabber/__init__.py index f6d8a7a..ad1b152 100644 --- a/sso/services/jabber/__init__.py +++ b/sso/services/jabber/__init__.py @@ -31,7 +31,7 @@ class JabberService(BaseService): uid = "%s@%s" % (username.lower(), self.settings['jabber_server']) if 'user' in kwargs: self.update_groups(uid, kwargs['user'].groups.all()) - return uid + return { 'username': uid, 'password': password } else: return False diff --git a/sso/services/miningbuddy/__init__.py b/sso/services/miningbuddy/__init__.py index 3ac50aa..7ca4e45 100644 --- a/sso/services/miningbuddy/__init__.py +++ b/sso/services/miningbuddy/__init__.py @@ -53,7 +53,7 @@ class MiningBuddyService(BaseDBService): self.dbcursor.execute(self.SQL_ADD_API, [userid, int(time.time()), kwargs['eveapi'].api_user_id, kwargs['eveapi'].api_key, kwargs['character'].id]) self.db.connection.commit() - return self._clean_username(username) + return { 'username': self._clean_username(username), 'password': password } def check_user(self, username): """ Check if the username exists """ diff --git a/sso/services/mumble/__init__.py b/sso/services/mumble/__init__.py index 36bdf15..4763f2e 100644 --- a/sso/services/mumble/__init__.py +++ b/sso/services/mumble/__init__.py @@ -34,7 +34,7 @@ class MumbleService(BaseService): if self.raw_add_user(username, kwargs['user'].email, password): self.update_groups(username, kwargs['user'].groups.all()) - return username + return { 'username': username, 'password': password } else: return False diff --git a/sso/services/phpbb/__init__.py b/sso/services/phpbb/__init__.py index b4bc77b..de6aea5 100644 --- a/sso/services/phpbb/__init__.py +++ b/sso/services/phpbb/__init__.py @@ -44,7 +44,7 @@ class PhpBBService(BaseDBService): self._db.connection.commit() self.update_groups(username) - return username + return { 'username': username, 'password': password } def update_groups(self, username): self._dbcursor.execute(self.SQL_CHECK_USER, [self._clean_username(username)]) diff --git a/sso/services/postracker/__init__.py b/sso/services/postracker/__init__.py index 4b1d04b..5c430c8 100644 --- a/sso/services/postracker/__init__.py +++ b/sso/services/postracker/__init__.py @@ -42,7 +42,7 @@ class POSTrackerService(BaseDBService): self.dbcursor.execute(self.SQL_ADD_USER, [eveid, username, "%s%s" % (salt, pwhash) , email]) self.db.connection.commit() - return username + return { 'username': username, 'password': password } def check_user(self, username): """ Check if the username exists """ diff --git a/sso/services/qms/__init__.py b/sso/services/qms/__init__.py index b47176d..0b27ca8 100644 --- a/sso/services/qms/__init__.py +++ b/sso/services/qms/__init__.py @@ -36,7 +36,7 @@ class QMSService(BaseDBService): pwhash, salt, cert = self._gen_pwhash(password) self.dbcursor.execute(self.SQL_ADD_USER, [username, username, pwhash, salt, email, cert]) self.db.connection.commit() - return username + return { 'username': username, 'password': password } def check_user(self, username): """ Check if the username exists """ diff --git a/sso/services/wiki/__init__.py b/sso/services/wiki/__init__.py index 2d59530..c02a5c0 100644 --- a/sso/services/wiki/__init__.py +++ b/sso/services/wiki/__init__.py @@ -54,7 +54,7 @@ class MediawikiService(BaseDBService): pwhash = self._gen_mw_hash(password) self.dbcursor.execute(self.SQL_ADD_USER, [self._clean_username(username), pwhash, email, self.default_options]) self.db.connection.commit() - return self._clean_username(username) + return { 'username': self._clean_username(username), 'password': password } def check_user(self, username): """ Check if the username exists """