From c86ba4990d913e9e75d19ec80551363c405a5aec Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Thu, 28 May 2015 01:23:45 -0400 Subject: [PATCH] Lots of changes, not tested Pushing latest changes to run them by a few folks. --- .gitignore | 1 + celerytask/tasks.py | 11 ++++----- requirements.txt | 2 +- services/admin.py | 5 ++-- services/managers/teamspeak3_manager.py | 21 ++++++++--------- services/models.py | 31 ++++++++++++++++++++----- 6 files changed, 45 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index a9d9c190..0e683042 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ target/ .vagrant/ alliance_auth/settings.py requirements.txt +static/admin/img/Thumbs.db diff --git a/celerytask/tasks.py b/celerytask/tasks.py index 50b3660c..536079ce 100755 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -9,6 +9,8 @@ from services.managers.mumble_manager import MumbleManager from services.managers.phpbb3_manager import Phpbb3Manager from services.managers.ipboard_manager import IPBoardManager from services.managers.teamspeak3_manager import Teamspeak3Manager +from services.models import AuthTS +from services.models import TSgroup from authentication.models import AuthServicesInfo from eveonline.managers import EveManager from services.managers.eve_api_manager import EveApiManager @@ -71,14 +73,11 @@ def update_ipboard_groups(user): def update_teamspeak3_groups(user): - syncgroups = SyncGroupCache.objects.filter(user=user) + usergroups = User.objects.filter(id=user.id).first().groups.all() authserviceinfo = AuthServicesInfo.objects.get(user=user) groups = [] - for syncgroup in syncgroups: - groups.append(str(syncgroup.groupname)) - - if len(groups) == 0: - groups.append('empty') + for usergroup in usergroups: + groups += list(AuthTS.objects.filter(auth_group=usergroup)) Teamspeak3Manager.update_groups(authserviceinfo.teamspeak3_uid, groups) diff --git a/requirements.txt b/requirements.txt index 72b6116a..6e648357 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # Python Stuff # - see bootstrap.sh -mysql-python +# mysql-python evelink dnspython passlib diff --git a/services/admin.py b/services/admin.py index ce073caa..6d817bb0 100644 --- a/services/admin.py +++ b/services/admin.py @@ -4,10 +4,11 @@ from .models import TSgroup from .models import UserTSgroup class AuthTSgroupAdmin(admin.ModelAdmin): - fields = ['ts_group_id','auth_group_id'] + fields = ['auth_group','ts_group'] + filter_horizontal = ('ts_group',) class TSgroupAdmin(admin.ModelAdmin): - fields = ['name'] + fields = ['ts_group_name'] admin.site.register(AuthTS, AuthTSgroupAdmin) admin.site.register(TSgroup, TSgroupAdmin) \ No newline at end of file diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index d2e77593..8c40402f 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -124,7 +124,7 @@ class Teamspeak3Manager: remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() for key in remote_groups: - TSgroup.objects.update_or_create(group_id=remote_groups[key],name=key) + TSgroup.objects.update_or_create(ts_group_id=remote_groups[key],ts_group_name=key) @staticmethod def add_user(username, corp_ticker): @@ -217,25 +217,24 @@ class Teamspeak3Manager: def update_groups(uid, l_groups): print uid print l_groups + Teamspeak3Manager._sync_ts_group_db() userid = Teamspeak3Manager._get_userid(uid) + act_groups = [] if userid is not None: - server_groups = Teamspeak3Manager._group_list() - user_groups = set(Teamspeak3Manager._user_group_list(userid)) - groups = [] - for l_group in l_groups: - groups.append(l_group[:30]) + user_ts_groups = set(Teamspeak3Manager._user_group_list(userid)) + for key in user_ts_groups: + for group in l_groups: + if group.auth_group.id = user_ts_groups[key]: + act_groups += group - act_groups = set([g.replace(' ', '-') for g in groups]) - addgroups = act_groups - user_groups - remgroups = user_groups - act_groups + addgroups = act_groups - l_groups + remgroups = l_groups - act_groups print userid print addgroups print remgroups for g in addgroups: - if not g in server_groups.keys(): - Teamspeak3Manager._create_group(g) Teamspeak3Manager._add_user_to_group(userid, g) for g in remgroups: diff --git a/services/models.py b/services/models.py index 843caccf..77bf98c0 100644 --- a/services/models.py +++ b/services/models.py @@ -1,13 +1,32 @@ from django.db import models +from django.contrib.auth.models import Group class TSgroup(models.Model): - group_id = models.IntegerField(primary_key=True) - name = models.CharField(max_length=30) + ts_group_id = models.IntegerField(primary_key=True) + ts_group_name = models.CharField(max_length=30) + + class Meta: + verbose_name='TS Group' + + def __str__(self): + return self.ts_group_name class AuthTS(models.Model): - ts_group_id = models.ForeignKey(TSgroup) - auth_group_id = models.ForeignKey('auth.Group') + auth_group = models.ForeignKey('auth.Group') + ts_group = models.ManyToManyField(TSgroup) + + class Meta: + verbose_name='Auth / TS Groups' + + def __str__(self): + return self.auth_group.name class UserTSgroup(models.Model): - user_id = models.ForeignKey('auth.User') - group_id = models.ManyToManyField(TSgroup) \ No newline at end of file + user = models.ForeignKey('auth.User') + ts_group = models.ManyToManyField(TSgroup) + + class Meta: + verbose_name='User / TS Group' + + def __str__(self): + return self.user.name \ No newline at end of file