Build TS perm key using State Information (#1044)

Build permkey with state group id
Pass user object to add_user instead of just username

Fixes #1043
This commit is contained in:
colcrunch 2018-05-09 20:39:14 -04:00 committed by Adarnof
parent 6187fb9b86
commit 5006246cf1
2 changed files with 8 additions and 7 deletions

View File

@ -179,18 +179,19 @@ class Teamspeak3Manager:
except: except:
logger.exception("An unhandled exception has occured while syncing TS groups.") logger.exception("An unhandled exception has occured while syncing TS groups.")
def add_user(self, username): def add_user(self, user, fmt_name):
username_clean = self.__santatize_username(username[:30]) username_clean = self.__santatize_username(fmt_name[:30])
logger.debug("Adding user to TS3 server with cleaned username %s" % username_clean) logger.debug("Adding user to TS3 server with cleaned username %s" % username_clean)
server_groups = self._group_list() server_groups = self._group_list()
if 'Member' not in server_groups: state = user.profile.state.name
self._create_group('Member') if state not in server_groups:
self._create_group(state)
alliance_group_id = self._group_id_by_name('Member') state_group_id = self._group_id_by_name(state)
try: try:
ret = self.server.send_command('tokenadd', {'tokentype': 0, 'tokenid1': alliance_group_id, 'tokenid2': 0, ret = self.server.send_command('tokenadd', {'tokentype': 0, 'tokenid1': state_group_id, 'tokenid2': 0,
'tokendescription': username_clean, 'tokendescription': username_clean,
'tokencustomset': "ident=sso_uid value=%s" % username_clean}) 'tokencustomset': "ident=sso_uid value=%s" % username_clean})
except TeamspeakError as e: except TeamspeakError as e:

View File

@ -22,7 +22,7 @@ def activate_teamspeak3(request):
character = request.user.profile.main_character character = request.user.profile.main_character
with Teamspeak3Manager() as ts3man: with Teamspeak3Manager() as ts3man:
logger.debug("Adding TS3 user for user %s with main character %s" % (request.user, character)) logger.debug("Adding TS3 user for user %s with main character %s" % (request.user, character))
result = ts3man.add_user(Teamspeak3Tasks.get_username(request.user)) result = ts3man.add_user(request.user, Teamspeak3Tasks.get_username(request.user))
# if its empty we failed # if its empty we failed
if result[0] is not "": if result[0] is not "":