Corrected authenticator group return

It works.
This commit is contained in:
Adarnof 2016-03-21 02:46:23 +00:00
parent d1038d1b72
commit b8db2c464b
6 changed files with 15 additions and 5 deletions

View File

@ -1,6 +1,7 @@
from django.contrib import admin from django.contrib import admin
from .models import AuthTS from .models import AuthTS
from .models import DiscordAuthToken from .models import DiscordAuthToken
from .models import MumbleUser
class AuthTSgroupAdmin(admin.ModelAdmin): class AuthTSgroupAdmin(admin.ModelAdmin):
fields = ['auth_group','ts_group'] fields = ['auth_group','ts_group']
@ -9,3 +10,5 @@ class AuthTSgroupAdmin(admin.ModelAdmin):
admin.site.register(AuthTS, AuthTSgroupAdmin) admin.site.register(AuthTS, AuthTSgroupAdmin)
admin.site.register(DiscordAuthToken) admin.site.register(DiscordAuthToken)
admin.site.register(MumbleUser)

View File

@ -102,11 +102,15 @@ class MumbleManager:
@staticmethod @staticmethod
def update_groups(username, groups): def update_groups(username, groups):
logger.debug("Updating mumble user %s groups %s" % (username, groups)) logger.debug("Updating mumble user %s groups %s" % (username, groups))
safe_groups = set([g.replace(' ', '-') for g in groups]) safe_groups = list(set([g.replace(' ', '-') for g in groups]))
groups =''
for g in safe_groups:
groups = groups + g + ','
groups = groups.strip(',')
if MumbleUser.objects.filter(username=username).exists(): if MumbleUser.objects.filter(username=username).exists():
logger.info("Updating mumble user %s groups to %s" % (username, safe_groups)) logger.info("Updating mumble user %s groups to %s" % (username, safe_groups))
model = MumbleUser.objects.get(username=username) model = MumbleUser.objects.get(username=username)
model.groups = safe_groups model.groups = groups
model.save() model.save()
else: else:
logger.error("User %s not found on mumble. Unable to update groups." % username) logger.error("User %s not found on mumble. Unable to update groups." % username)

View File

@ -45,4 +45,4 @@ class MumbleUser(models.Model):
groups = models.TextField(blank=True, null=True) groups = models.TextField(blank=True, null=True)
def __str__(self): def __str__(self):
return self.username + ' - ' + str(self.user) return self.username

1
thirdparty/Mumble/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
authenticator.ini

View File

@ -499,11 +499,13 @@ def do_main_program():
return (FALL_THROUGH, None, None) return (FALL_THROUGH, None, None)
uid, upwhash, ugroups = res uid, upwhash, ugroups = res
groups = ugroups.split(',')
if allianceauth_check_hash(pw, upwhash): if allianceauth_check_hash(pw, upwhash):
info('User authenticated: "%s" (%d)', name, uid + cfg.user.id_offset) info('User authenticated: "%s" (%d)', name, uid + cfg.user.id_offset)
debug('Group memberships: %s', str(ugroups)) debug('Group memberships: %s', str(groups))
return (uid + cfg.user.id_offset, entity_decode(name), ugroups) return (uid + cfg.user.id_offset, entity_decode(name), groups)
info('Failed authentication attempt for user: "%s" (%d)', name, uid + cfg.user.id_offset) info('Failed authentication attempt for user: "%s" (%d)', name, uid + cfg.user.id_offset)
return (AUTH_REFUSED, None, None) return (AUTH_REFUSED, None, None)