From 2d85fb84ed8578c66d8ff4522744bdf030df0558 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sat, 23 May 2015 17:00:56 -0400 Subject: [PATCH 01/37] Added TS3 group models and admin --- services/admin.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/services/admin.py b/services/admin.py index 846f6b40..1e8bd590 100644 --- a/services/admin.py +++ b/services/admin.py @@ -1 +1,13 @@ -# Register your models here. +from django.contrib import admin +from .models import authTS +from .models import TSgroup +from .models import userTSgroup + +class AuthTSgroupAdmin(admin.ModelAdmin): + fields = ['ts_group_id','auth_group_id'] + +class TSgroupAdmin(admin.ModelAdmin): + fields = ['name'] + +admin.site.register(authTS, AuthTSgroupAdmin) +admin.site.register(TSgroup, TSgroupAdmin) \ No newline at end of file From e1c3750f3acc0afb9bd7fb345319bd48a75f0dbf Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sat, 23 May 2015 17:03:35 -0400 Subject: [PATCH 02/37] And models Messed up last commit. This one actually includes models.py --- services/models.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/services/models.py b/services/models.py index 6b202199..22780215 100644 --- a/services/models.py +++ b/services/models.py @@ -1 +1,13 @@ -# Create your models here. +from django.db import models + +class authTS(models.Model): + ts_group_id = models.ForeignKey(TSgroup) + auth_group_id = models.ForeignKey(Group) + +class TSgroup(models.Model): + group_id = models.int(primary_key=True) + name = models.CharField(max_length=30) + +class userTSgroup(model.Model): + user_id = models.ForeignKey(User) + group_id = model.ManyToManyField(TSgroup) \ No newline at end of file From 1fcd47f33302304a0f47aca364f18dc5910f8492 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sat, 23 May 2015 17:13:22 -0400 Subject: [PATCH 03/37] Small format error Classes should start with a Capitol letter --- services/models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/models.py b/services/models.py index 22780215..03d39d06 100644 --- a/services/models.py +++ b/services/models.py @@ -1,6 +1,6 @@ from django.db import models -class authTS(models.Model): +class AuthTS(models.Model): ts_group_id = models.ForeignKey(TSgroup) auth_group_id = models.ForeignKey(Group) @@ -8,6 +8,6 @@ class TSgroup(models.Model): group_id = models.int(primary_key=True) name = models.CharField(max_length=30) -class userTSgroup(model.Model): +class UserTSgroup(model.Model): user_id = models.ForeignKey(User) group_id = model.ManyToManyField(TSgroup) \ No newline at end of file From 9d884c0a2ca7aaef62a9cd665009936c0095fe4b Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 24 May 2015 15:32:43 -0400 Subject: [PATCH 04/37] More format corrections I forgot to adjust the class names in admin.py after changing the first characters to caps. There was also a little shuffling of code to make the definitions work. --- services/admin.py | 6 +++--- services/models.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/services/admin.py b/services/admin.py index 1e8bd590..ce073caa 100644 --- a/services/admin.py +++ b/services/admin.py @@ -1,7 +1,7 @@ from django.contrib import admin -from .models import authTS +from .models import AuthTS from .models import TSgroup -from .models import userTSgroup +from .models import UserTSgroup class AuthTSgroupAdmin(admin.ModelAdmin): fields = ['ts_group_id','auth_group_id'] @@ -9,5 +9,5 @@ class AuthTSgroupAdmin(admin.ModelAdmin): class TSgroupAdmin(admin.ModelAdmin): fields = ['name'] -admin.site.register(authTS, AuthTSgroupAdmin) +admin.site.register(AuthTS, AuthTSgroupAdmin) admin.site.register(TSgroup, TSgroupAdmin) \ No newline at end of file diff --git a/services/models.py b/services/models.py index 03d39d06..843caccf 100644 --- a/services/models.py +++ b/services/models.py @@ -1,13 +1,13 @@ from django.db import models +class TSgroup(models.Model): + group_id = models.IntegerField(primary_key=True) + name = models.CharField(max_length=30) + class AuthTS(models.Model): ts_group_id = models.ForeignKey(TSgroup) - auth_group_id = models.ForeignKey(Group) + auth_group_id = models.ForeignKey('auth.Group') -class TSgroup(models.Model): - group_id = models.int(primary_key=True) - name = models.CharField(max_length=30) - -class UserTSgroup(model.Model): - user_id = models.ForeignKey(User) - group_id = model.ManyToManyField(TSgroup) \ No newline at end of file +class UserTSgroup(models.Model): + user_id = models.ForeignKey('auth.User') + group_id = models.ManyToManyField(TSgroup) \ No newline at end of file From 423e0ad16165bc9e476bffd79cb263df5350080d Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Tue, 26 May 2015 01:22:42 -0400 Subject: [PATCH 05/37] Added function to sync TS3 groups --- .gitignore | 1 + services/managers/teamspeak3_manager.py | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/.gitignore b/.gitignore index da2f9c3a..a9d9c190 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,4 @@ target/ .vagrant/ alliance_auth/settings.py +requirements.txt diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index a8c2c65d..d2e77593 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -1,6 +1,7 @@ from django.conf import settings from services.managers.util.ts3 import TS3Server +from services.models import TSgroup class Teamspeak3Manager: @@ -118,6 +119,13 @@ class Teamspeak3Manager: server.send_command('servergroupdelclient', {'sgid': Teamspeak3Manager._group_id_by_name(groupname), 'cldbid': uid}) + @staticmethod + def _sync_ts_group_db(): + 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) + @staticmethod def add_user(username, corp_ticker): username_clean = Teamspeak3Manager.__santatize_username(Teamspeak3Manager.__generate_username(username, From c86ba4990d913e9e75d19ec80551363c405a5aec Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Thu, 28 May 2015 01:23:45 -0400 Subject: [PATCH 06/37] 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 From b76bc2729c647110b64784f76f15376f50c4d7fd Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 16:41:16 -0500 Subject: [PATCH 07/37] More random changes Super disorganized here. Trying to get back to a working state --- .gitignore | 1 + celerytask/tasks.py | 23 +++++++++++++----- requirements.txt | 6 ++--- services/admin.py | 4 ++++ services/managers/teamspeak3_manager.py | 30 +++++++++++++++--------- services/models.py | 4 ++-- static/img/index_images/Thumbs.db | Bin 0 -> 3584 bytes vagrant/bootstrap.sh | 9 +++++++ 8 files changed, 55 insertions(+), 22 deletions(-) create mode 100644 static/img/index_images/Thumbs.db diff --git a/.gitignore b/.gitignore index 0e683042..ad28d98f 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,4 @@ target/ alliance_auth/settings.py requirements.txt static/admin/img/Thumbs.db +nginx_config.txt diff --git a/celerytask/tasks.py b/celerytask/tasks.py index 536079ce..598a56fe 100755 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -73,11 +73,19 @@ def update_ipboard_groups(user): def update_teamspeak3_groups(user): - usergroups = User.objects.filter(id=user.id).first().groups.all() + print "Running update_teamspeak3_groups" + print("user = {0}").format(user) + usergroups = User.objects.get(id=user.id).groups.all() + print("usergroups = {0}").format(usergroups) authserviceinfo = AuthServicesInfo.objects.get(user=user) - groups = [] + groups = {} for usergroup in usergroups: - groups += list(AuthTS.objects.filter(auth_group=usergroup)) + print("usergroup = {0}").format(usergroup) + filtered_groups = AuthTS.objects.filter(auth_group=usergroup) + if filtered_groups: + for filtered_group in filtered_groups: + for ts_group in filtered_group.ts_group.all(): + groups[ts_group.ts_group_name] = ts_group.ts_group_id Teamspeak3Manager.update_groups(authserviceinfo.teamspeak3_uid, groups) @@ -98,6 +106,9 @@ def remove_all_syncgroups_for_service(user, servicename): def add_to_databases(user, groups, syncgroups): + print user + print groups + print syncgroups authserviceinfo = None try: authserviceinfo = AuthServicesInfo.objects.get(user=user) @@ -108,6 +119,7 @@ def add_to_databases(user, groups, syncgroups): authserviceinfo = AuthServicesInfo.objects.get(user=user) for group in groups: + print group if authserviceinfo.jabber_username and authserviceinfo.jabber_username != "": if syncgroups.filter(groupname=group.name).filter(servicename="openfire").exists() is not True: @@ -126,9 +138,7 @@ def add_to_databases(user, groups, syncgroups): create_syncgroup_for_user(user, group.name, "ipboard") update_ipboard_groups(user) if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "": - if syncgroups.filter(groupname=group.name).filter(servicename="teamspeak3").exists() is not True: - create_syncgroup_for_user(user, group.name, "teamspeak3") - update_teamspeak3_groups(user) + update_teamspeak3_groups(user) def remove_from_databases(user, groups, syncgroups): @@ -167,6 +177,7 @@ def run_databaseUpdate(): for user in users: groups = user.groups.all() syncgroups = SyncGroupCache.objects.filter(user=user) + Teamspeak3Manager._sync_ts_group_db() add_to_databases(user, groups, syncgroups) remove_from_databases(user, groups, syncgroups) diff --git a/requirements.txt b/requirements.txt index 6e648357..29f6b32c 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,13 +1,13 @@ # Python Stuff # - see bootstrap.sh -# mysql-python +mysql-python evelink dnspython passlib xmpppy==0.5.0rc1 -python-openfire==0.2.3-beta +# python-openfire==0.2.3-beta # Django Stuff # -django==1.6.1 +django==1.7.0 django-evolution django-bootstrap-form django-celery diff --git a/services/admin.py b/services/admin.py index 6d817bb0..2026832a 100644 --- a/services/admin.py +++ b/services/admin.py @@ -10,5 +10,9 @@ class AuthTSgroupAdmin(admin.ModelAdmin): class TSgroupAdmin(admin.ModelAdmin): fields = ['ts_group_name'] +class UserTSgroupAdmin(admin.ModelAdmin): + fields = ['user','ts_group'] + filter_horizontal = ('ts_group',) + 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 8c40402f..53771a05 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -214,21 +214,29 @@ class Teamspeak3Manager: return Teamspeak3Manager.add_blue_user(username, corpticker) @staticmethod - def update_groups(uid, l_groups): + def update_groups(uid, ts_groups): + print "Running update_groups" print uid - print l_groups - Teamspeak3Manager._sync_ts_group_db() + print ts_groups + print "Running _sync_ts_group_db()" userid = Teamspeak3Manager._get_userid(uid) - act_groups = [] + addgroups = {} + remgroups = {} if userid is not None: - user_ts_groups = set(Teamspeak3Manager._user_group_list(userid)) + user_ts_groups = 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 - - addgroups = act_groups - l_groups - remgroups = l_groups - act_groups + user_ts_groups[key] = long(user_ts_groups[key]) + print("user_ts_groups = {0}").format(user_ts_groups) + for ts_group_key in ts_groups: + print("(For addgroups) {0} not in {1}").format(ts_groups[ts_group_key], user_ts_groups.values()) + if ts_groups[ts_group_key] not in user_ts_groups.values(): + print("Adding {0}").format(ts_group_key) + addgroups[ts_group_key] = ts_groups[ts_group_key] + for user_ts_group_key in user_ts_groups: + print("(For remgroups) {0}").format(user_ts_group_key) + if user_ts_groups[user_ts_group_key] not in ts_groups.values(): + print("Value {0} not found").format(user_ts_groups[user_ts_group_key]) + remgroups[user_ts_group_key] = user_ts_groups[user_ts_group_key] print userid print addgroups diff --git a/services/models.py b/services/models.py index 77bf98c0..87a5ad57 100644 --- a/services/models.py +++ b/services/models.py @@ -16,7 +16,7 @@ class AuthTS(models.Model): ts_group = models.ManyToManyField(TSgroup) class Meta: - verbose_name='Auth / TS Groups' + verbose_name='Auth / TS Group' def __str__(self): return self.auth_group.name @@ -26,7 +26,7 @@ class UserTSgroup(models.Model): ts_group = models.ManyToManyField(TSgroup) class Meta: - verbose_name='User / TS Group' + verbose_name='User TS Group' def __str__(self): return self.user.name \ No newline at end of file diff --git a/static/img/index_images/Thumbs.db b/static/img/index_images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..91d9710aefef09096ee5cbb77860160a8cbb1ab4 GIT binary patch literal 3584 zcmca`Uhu)fjZzO8(10BSGsD0CoD6J8;*3Bx2!nwD0|OI~0pkDr|NlQkkbwcn90fxt z1pWfu3W`4vW&uVbD>OcbkQYXsN;Sr0E8 zaOiCKTi!qQ_60^}pnL-;p#gyrgDHaGZx^prwfgF}}M_)$< zhK>E)e-eRavApzjaSW-5dpoB;RK!rA{UF;BE@XIt>k8KeFa*&XnCJ9+EA&j>zx(v= z+h@Pu+Y_7cebY((nLcU7Iq`9Ed8N+|+LpgL(_m+GJl#Jhy|n7AdHI|vde45$>3qB1 zZ~e`(QXjb-0u=d_E`p@P@4I6=(PLSC*Q1 z{&RmbIYQ6;HM8z3Zx-24!DqJLjjs!2O$xg)@5agqPVuDUN!Cf%(p!&}&Z;$heJjXX z_;O3Vy!0vWsovIeIxgy|7Q9^-@#Bo=>cY+MkJfbFbli*g(H%%>O^>p9b^-lSndm|2Er_W5hun2i#pjPn0a6ux}f zO3U{CUBeX5B)&{*?Omp~*M*!>4A}5>()WGVdX0)nQKxN+yQG4BTnC zbJ9;=B`3X#QJR{S8=+BIpSd@(b64;m6qfq*>`hh%(!N4qUENxV#{@98{TLwHr`BCagF|>V%bg}(P*dk zGgGIPFW}oKxGT(Q`M!A$O19s&HUDhw5^jBU@6GnR&zU6bqWj%i9416O-gxY4YLHyh z^a|cdlA1qwtop7hzR0lqdGLPZzCibDHy5g(uC-mrsw?y~@Llc~KK<03iSxT|oHH-` zH#P6!`lDL@wo?Wcz9QiaP_QJg&-Wrucsvh}h%?^V_ly3T!f;i)TM-~Q()^qaEl=DAy&w|?dK bIod5ZzuX*LfO@+6xvX Date: Sun, 1 Nov 2015 17:11:40 -0500 Subject: [PATCH 08/37] Moved TS3 group update The group update was being called once for every group the user was in, but the update function itself already iterates over all the groups and only needs to be called once per user. I've moved the execution out of the group iteration so it only gets called once. --- celerytask/tasks.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/celerytask/tasks.py b/celerytask/tasks.py index 598a56fe..4c1fca62 100755 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -117,7 +117,10 @@ def add_to_databases(user, groups, syncgroups): if authserviceinfo: authserviceinfo = AuthServicesInfo.objects.get(user=user) - + + if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "": + update_teamspeak3_groups(user) + for group in groups: print group @@ -137,8 +140,6 @@ def add_to_databases(user, groups, syncgroups): if syncgroups.filter(groupname=group.name).filter(servicename="ipboard").exists() is not True: create_syncgroup_for_user(user, group.name, "ipboard") update_ipboard_groups(user) - if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "": - update_teamspeak3_groups(user) def remove_from_databases(user, groups, syncgroups): From 2bfbd614e6d7bd76b3c181261ab02f89b8022937 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 17:27:04 -0500 Subject: [PATCH 09/37] Adjusted logging Changed logging to make a little more sense during debugging --- services/managers/teamspeak3_manager.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 53771a05..1cb21287 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -218,7 +218,6 @@ class Teamspeak3Manager: print "Running update_groups" print uid print ts_groups - print "Running _sync_ts_group_db()" userid = Teamspeak3Manager._get_userid(uid) addgroups = {} remgroups = {} @@ -228,12 +227,12 @@ class Teamspeak3Manager: user_ts_groups[key] = long(user_ts_groups[key]) print("user_ts_groups = {0}").format(user_ts_groups) for ts_group_key in ts_groups: - print("(For addgroups) {0} not in {1}").format(ts_groups[ts_group_key], user_ts_groups.values()) + print("(For addgroups) GID {0}").format(user_ts_group_key) if ts_groups[ts_group_key] not in user_ts_groups.values(): print("Adding {0}").format(ts_group_key) addgroups[ts_group_key] = ts_groups[ts_group_key] for user_ts_group_key in user_ts_groups: - print("(For remgroups) {0}").format(user_ts_group_key) + print("(For remgroups) GID {0}").format(user_ts_group_key) if user_ts_groups[user_ts_group_key] not in ts_groups.values(): print("Value {0} not found").format(user_ts_groups[user_ts_group_key]) remgroups[user_ts_group_key] = user_ts_groups[user_ts_group_key] From cddd2b91e496a0ae54b97483a25a427721f7828c Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 17:28:41 -0500 Subject: [PATCH 10/37] changed group key type Why did I even think long was a good idea? --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 1cb21287..8a340fda 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -224,7 +224,7 @@ class Teamspeak3Manager: if userid is not None: user_ts_groups = Teamspeak3Manager._user_group_list(userid) for key in user_ts_groups: - user_ts_groups[key] = long(user_ts_groups[key]) + user_ts_groups[key] = int(user_ts_groups[key]) print("user_ts_groups = {0}").format(user_ts_groups) for ts_group_key in ts_groups: print("(For addgroups) GID {0}").format(user_ts_group_key) From 94ef8ce694661be023a84d4eab85cfbe69ce851a Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 17:32:08 -0500 Subject: [PATCH 11/37] Indentation I broke it. Now it's fixed. --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 8a340fda..a61eb956 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -227,7 +227,7 @@ class Teamspeak3Manager: user_ts_groups[key] = int(user_ts_groups[key]) print("user_ts_groups = {0}").format(user_ts_groups) for ts_group_key in ts_groups: - print("(For addgroups) GID {0}").format(user_ts_group_key) + print("(For addgroups) GID {0}").format(user_ts_group_key) if ts_groups[ts_group_key] not in user_ts_groups.values(): print("Adding {0}").format(ts_group_key) addgroups[ts_group_key] = ts_groups[ts_group_key] From df659c485106dc182ec2d2341c9e238786ee6b60 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 17:34:01 -0500 Subject: [PATCH 12/37] Copypaste error user_ts_group_key should have been ts_group_key --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index a61eb956..0f3b0ea3 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -227,7 +227,7 @@ class Teamspeak3Manager: user_ts_groups[key] = int(user_ts_groups[key]) print("user_ts_groups = {0}").format(user_ts_groups) for ts_group_key in ts_groups: - print("(For addgroups) GID {0}").format(user_ts_group_key) + print("(For addgroups) GID {0}").format(ts_group_key) if ts_groups[ts_group_key] not in user_ts_groups.values(): print("Adding {0}").format(ts_group_key) addgroups[ts_group_key] = ts_groups[ts_group_key] From ee3fe5e43e3aee212614d903f520fb0bd4dae429 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 17:49:53 -0500 Subject: [PATCH 13/37] More logging Added more debug logging to figure out why Server Admin never gets assigned. --- services/managers/teamspeak3_manager.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 0f3b0ea3..077a7dae 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -95,16 +95,21 @@ class Teamspeak3Manager: @staticmethod def _add_user_to_group(uid, groupname): + print("--RUNNING _add_user_to_groups()--") groupname = groupname[:30] + print("groupname = {0}").format(groupname) server = Teamspeak3Manager.__get_created_server() server_groups = Teamspeak3Manager._group_list() user_groups = Teamspeak3Manager._user_group_list(uid) + print("user_groups = {0}").format(user_groups) if not groupname in server_groups: - Teamspeak3Manager._create_group(groupname) + #Teamspeak3Manager._create_group(groupname) + print("----GROUP NAME WAS NOT FOUND IN SERVER GROUPS----") if not groupname in user_groups: - server.send_command('servergroupaddclient', + resp = server.send_command('servergroupaddclient', {'sgid': Teamspeak3Manager._group_id_by_name(groupname), 'cldbid': uid}) + print(resp) @staticmethod def _remove_user_from_group(uid, groupname): From 2eb0bd52210053521d2e05b42f8374bc859675b1 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 17:53:10 -0500 Subject: [PATCH 14/37] More indentation Notepad++ was configured to use tabs instead of spaces. That shouldn't happen anymore. --- services/managers/teamspeak3_manager.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 077a7dae..dcb9145d 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -95,17 +95,17 @@ class Teamspeak3Manager: @staticmethod def _add_user_to_group(uid, groupname): - print("--RUNNING _add_user_to_groups()--") + print("--RUNNING _add_user_to_groups()--") groupname = groupname[:30] - print("groupname = {0}").format(groupname) + print("groupname = {0}").format(groupname) server = Teamspeak3Manager.__get_created_server() server_groups = Teamspeak3Manager._group_list() user_groups = Teamspeak3Manager._user_group_list(uid) - print("user_groups = {0}").format(user_groups) + print("user_groups = {0}").format(user_groups) if not groupname in server_groups: #Teamspeak3Manager._create_group(groupname) - print("----GROUP NAME WAS NOT FOUND IN SERVER GROUPS----") + print("----GROUP NAME WAS NOT FOUND IN SERVER GROUPS----") if not groupname in user_groups: resp = server.send_command('servergroupaddclient', {'sgid': Teamspeak3Manager._group_id_by_name(groupname), 'cldbid': uid}) From 621de341a80d37a5ea98beded73d0c392dff836f Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 18:06:35 -0500 Subject: [PATCH 15/37] Logging I think the issue may be with escaping the whitespace in group names. If this is the case, I'll have to tweak the code in ts3.py --- services/managers/util/ts3.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/managers/util/ts3.py b/services/managers/util/ts3.py index f13a04ba..41a0300a 100755 --- a/services/managers/util/ts3.py +++ b/services/managers/util/ts3.py @@ -60,6 +60,8 @@ class TS3Proto(): def send_command(self, command, keys=None, opts=None): cmd = self.construct_command(command, keys=keys, opts=opts) self.send('%s\n' % cmd) + + print("Command to be sent: {0}").format(cmd) data = [] From 478d855d624db4e8edf09843083264c4557a075a Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 18:19:56 -0500 Subject: [PATCH 16/37] Logging It looks like the escaping is fine, but there's two "Server Admin" groups (id3 and id6) which might be messing with the assignment. --- services/managers/teamspeak3_manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index dcb9145d..accc2112 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -100,6 +100,7 @@ class Teamspeak3Manager: print("groupname = {0}").format(groupname) server = Teamspeak3Manager.__get_created_server() server_groups = Teamspeak3Manager._group_list() + print("server_groups = {0}").format(server_groups) user_groups = Teamspeak3Manager._user_group_list(uid) print("user_groups = {0}").format(user_groups) From 7039cffddb547e2783531e5373094c6cf6f6a45b Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 23:40:34 -0500 Subject: [PATCH 17/37] Fixing Server Admin assignment Changed _add_user_to_group() to take group ID instead of group name. addgroups and remgroups are now lists instead of dictionaries because I don't need the group names anymore. Removed debug logging from _add_user_to_group() and send_command() --- services/managers/teamspeak3_manager.py | 30 ++++++++++--------------- services/managers/util/ts3.py | 2 -- 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index accc2112..88601f1e 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -94,23 +94,14 @@ class Teamspeak3Manager: return outlist @staticmethod - def _add_user_to_group(uid, groupname): - print("--RUNNING _add_user_to_groups()--") - groupname = groupname[:30] - print("groupname = {0}").format(groupname) + def _add_user_to_group(uid, groupid): server = Teamspeak3Manager.__get_created_server() server_groups = Teamspeak3Manager._group_list() - print("server_groups = {0}").format(server_groups) user_groups = Teamspeak3Manager._user_group_list(uid) - print("user_groups = {0}").format(user_groups) - - if not groupname in server_groups: - #Teamspeak3Manager._create_group(groupname) - print("----GROUP NAME WAS NOT FOUND IN SERVER GROUPS----") - if not groupname in user_groups: - resp = server.send_command('servergroupaddclient', - {'sgid': Teamspeak3Manager._group_id_by_name(groupname), 'cldbid': uid}) - print(resp) + + if not groupid in user_groups.values(): + server.send_command('servergroupaddclient', + {'sgid': groupid, 'cldbid': uid}) @staticmethod def _remove_user_from_group(uid, groupname): @@ -129,6 +120,9 @@ class Teamspeak3Manager: def _sync_ts_group_db(): remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() + for group in local_groups: + if group.ts_group_id not in remote_groups.values() + TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: TSgroup.objects.update_or_create(ts_group_id=remote_groups[key],ts_group_name=key) @@ -225,8 +219,8 @@ class Teamspeak3Manager: print uid print ts_groups userid = Teamspeak3Manager._get_userid(uid) - addgroups = {} - remgroups = {} + addgroups = [] + remgroups = [] if userid is not None: user_ts_groups = Teamspeak3Manager._user_group_list(userid) for key in user_ts_groups: @@ -236,12 +230,12 @@ class Teamspeak3Manager: print("(For addgroups) GID {0}").format(ts_group_key) if ts_groups[ts_group_key] not in user_ts_groups.values(): print("Adding {0}").format(ts_group_key) - addgroups[ts_group_key] = ts_groups[ts_group_key] + addgroups.append(ts_groups[ts_group_key]) for user_ts_group_key in user_ts_groups: print("(For remgroups) GID {0}").format(user_ts_group_key) if user_ts_groups[user_ts_group_key] not in ts_groups.values(): print("Value {0} not found").format(user_ts_groups[user_ts_group_key]) - remgroups[user_ts_group_key] = user_ts_groups[user_ts_group_key] + remgroups.append(user_ts_groups[user_ts_group_key]) print userid print addgroups diff --git a/services/managers/util/ts3.py b/services/managers/util/ts3.py index 41a0300a..f13a04ba 100755 --- a/services/managers/util/ts3.py +++ b/services/managers/util/ts3.py @@ -60,8 +60,6 @@ class TS3Proto(): def send_command(self, command, keys=None, opts=None): cmd = self.construct_command(command, keys=keys, opts=opts) self.send('%s\n' % cmd) - - print("Command to be sent: {0}").format(cmd) data = [] From 6abd62960f5178a7e7520295ee748530eec2ce85 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Sun, 1 Nov 2015 23:50:26 -0500 Subject: [PATCH 18/37] Small error If statement with bad syntax --- services/managers/teamspeak3_manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 88601f1e..eeebb25f 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -121,8 +121,8 @@ class Teamspeak3Manager: remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() for group in local_groups: - if group.ts_group_id not in remote_groups.values() - TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() + if group.ts_group_id not in remote_groups.values(): + TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: TSgroup.objects.update_or_create(ts_group_id=remote_groups[key],ts_group_name=key) From c81b676553d9568f7aaaabf87f1cf720c7d1a206 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 00:14:58 -0500 Subject: [PATCH 19/37] remove_user_from_group Mirrored changes from add_user_from_group() remove_user_from_group() --- services/managers/teamspeak3_manager.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index eeebb25f..e5162101 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -104,17 +104,14 @@ class Teamspeak3Manager: {'sgid': groupid, 'cldbid': uid}) @staticmethod - def _remove_user_from_group(uid, groupname): - groupname = groupname[:30] + def _remove_user_from_group(uid, groupid): server = Teamspeak3Manager.__get_created_server() server_groups = Teamspeak3Manager._group_list() user_groups = Teamspeak3Manager._user_group_list(uid) - if groupname in server_groups: - Teamspeak3Manager._create_group(groupname) if groupname in user_groups: server.send_command('servergroupdelclient', - {'sgid': Teamspeak3Manager._group_id_by_name(groupname), 'cldbid': uid}) + {'sgid': groupid, 'cldbid': uid}) @staticmethod def _sync_ts_group_db(): From f0527a54793bd6b0cd559695204da29cbf841a8a Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 00:23:12 -0500 Subject: [PATCH 20/37] mistake forgot to change one instance of groupname to groupid --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index e5162101..2842fef6 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -109,7 +109,7 @@ class Teamspeak3Manager: server_groups = Teamspeak3Manager._group_list() user_groups = Teamspeak3Manager._user_group_list(uid) - if groupname in user_groups: + if groupid in user_groups: server.send_command('servergroupdelclient', {'sgid': groupid, 'cldbid': uid}) From 8a0e3f309db71562c7a9d53c9ccf6d471712e8a7 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 00:41:31 -0500 Subject: [PATCH 21/37] More logging Groups aren't adding now. Gotta make the logging better in update_groups() --- services/managers/teamspeak3_manager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 2842fef6..ceb12fad 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -212,9 +212,9 @@ class Teamspeak3Manager: @staticmethod def update_groups(uid, ts_groups): - print "Running update_groups" - print uid - print ts_groups + print "--Running update_groups--" + print("uid = {0}").format(uid) + print("ts_groups = {0}").format(ts_groups) userid = Teamspeak3Manager._get_userid(uid) addgroups = [] remgroups = [] @@ -224,12 +224,12 @@ class Teamspeak3Manager: user_ts_groups[key] = int(user_ts_groups[key]) print("user_ts_groups = {0}").format(user_ts_groups) for ts_group_key in ts_groups: - print("(For addgroups) GID {0}").format(ts_group_key) + print("(For addgroups) GID: {0} Name: {1}").format(ts_groups[ts_group_key],ts_group_key) if ts_groups[ts_group_key] not in user_ts_groups.values(): print("Adding {0}").format(ts_group_key) addgroups.append(ts_groups[ts_group_key]) for user_ts_group_key in user_ts_groups: - print("(For remgroups) GID {0}").format(user_ts_group_key) + print("(For remgroups) GID: {0} Name: {1}").format(user_ts_groups[user_ts_group_key],user_ts_group_key) if user_ts_groups[user_ts_group_key] not in ts_groups.values(): print("Value {0} not found").format(user_ts_groups[user_ts_group_key]) remgroups.append(user_ts_groups[user_ts_group_key]) From 425aef081d828358728bfecd68b10b513e7d39af Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 00:49:34 -0500 Subject: [PATCH 22/37] Add/Remove user need sting inputs Had to cast groupid to str --- services/managers/teamspeak3_manager.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index ceb12fad..1c5c6a45 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -101,7 +101,7 @@ class Teamspeak3Manager: if not groupid in user_groups.values(): server.send_command('servergroupaddclient', - {'sgid': groupid, 'cldbid': uid}) + {'sgid': str(groupid), 'cldbid': uid}) @staticmethod def _remove_user_from_group(uid, groupid): @@ -111,7 +111,7 @@ class Teamspeak3Manager: if groupid in user_groups: server.send_command('servergroupdelclient', - {'sgid': groupid, 'cldbid': uid}) + {'sgid': str(groupid), 'cldbid': uid}) @staticmethod def _sync_ts_group_db(): From d3d1463404ded52e371eb3c30dd5c3638e0155cf Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 22:08:32 -0500 Subject: [PATCH 23/37] Version conflict update_or_insert is from a newer version of django. gotta use .save() --- services/managers/teamspeak3_manager.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 1c5c6a45..6f1de28d 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -121,7 +121,10 @@ class Teamspeak3Manager: if group.ts_group_id not in remote_groups.values(): TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: - TSgroup.objects.update_or_create(ts_group_id=remote_groups[key],ts_group_name=key) + g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) + q = TSgroup.objects.filters(ts_group_id=g.ts_group_id) + if !q: + g.save() @staticmethod def add_user(username, corp_ticker): From 560673767ae9cf5ba8c2436f2229103ddaa8bcfd Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 22:12:49 -0500 Subject: [PATCH 24/37] syntax get some --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 6f1de28d..490fddc6 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -123,7 +123,7 @@ class Teamspeak3Manager: for key in remote_groups: g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) q = TSgroup.objects.filters(ts_group_id=g.ts_group_id) - if !q: + if not q: g.save() @staticmethod From 385533a9b581d78cf8bb3ce9358514f520efea0b Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 22:15:24 -0500 Subject: [PATCH 25/37] filter It's not plural --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 490fddc6..d26c4f5f 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -122,7 +122,7 @@ class Teamspeak3Manager: TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) - q = TSgroup.objects.filters(ts_group_id=g.ts_group_id) + q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) if not q: g.save() From 9c0d980bfa1b6c26abfff6189bb49cd1b8406640 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 22:46:26 -0500 Subject: [PATCH 26/37] logging I broke it again --- services/managers/teamspeak3_manager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index d26c4f5f..f91555e1 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -119,11 +119,13 @@ class Teamspeak3Manager: local_groups = TSgroup.objects.all() for group in local_groups: if group.ts_group_id not in remote_groups.values(): + print("Removing {0} from DB").format(group.ts_group_name) TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) if not q: + print("Saving {0} to DB").format(g.ts_group_name) g.save() @staticmethod From d7933f531110c42ab4b91060fe5c22623e9c40a5 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 23:08:02 -0500 Subject: [PATCH 27/37] Logging Even more --- services/managers/teamspeak3_manager.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index f91555e1..86084a80 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -117,11 +117,14 @@ class Teamspeak3Manager: def _sync_ts_group_db(): remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() + print("--Doing group sync--") for group in local_groups: + print("(For Removals) Processing {0}").format(group.ts_group_name) if group.ts_group_id not in remote_groups.values(): print("Removing {0} from DB").format(group.ts_group_name) TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: + print("(For Adds) Processing {0}").format(key) g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) if not q: From bba5bc33c48cc5b0858b77f8248225bba28f34a2 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 23:16:59 -0500 Subject: [PATCH 28/37] Logging I'm tired --- services/managers/teamspeak3_manager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 86084a80..050a2e1a 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -118,9 +118,11 @@ class Teamspeak3Manager: remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() print("--Doing group sync--") + print("Remote groups {0}").format(remote_groups.values()) for group in local_groups: print("(For Removals) Processing {0}").format(group.ts_group_name) if group.ts_group_id not in remote_groups.values(): + print("GroupID={}:") print("Removing {0} from DB").format(group.ts_group_name) TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: From ba1e11d182256cd3fd53d073c662d22a08dae5d9 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 23:21:38 -0500 Subject: [PATCH 29/37] Can I stop yet? --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 050a2e1a..ed15fdad 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -122,7 +122,7 @@ class Teamspeak3Manager: for group in local_groups: print("(For Removals) Processing {0}").format(group.ts_group_name) if group.ts_group_id not in remote_groups.values(): - print("GroupID={}:") + print("GroupID={0}").format(group.ts_group_id) print("Removing {0} from DB").format(group.ts_group_name) TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: From 876ac6f3a2529af36c5e9bc8a2a6acb135116609 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 23:30:00 -0500 Subject: [PATCH 30/37] Strings and ints I was comparing them. That was dumb --- services/managers/teamspeak3_manager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index ed15fdad..28a32591 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -117,6 +117,8 @@ class Teamspeak3Manager: def _sync_ts_group_db(): remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() + remote_groups = [ int(id) for id in remote_groups ] + print("--Doing group sync--") print("Remote groups {0}").format(remote_groups.values()) for group in local_groups: From e9a2cb54b14f72eb6ff96bb969c6c0ae75dc3514 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 23:34:54 -0500 Subject: [PATCH 31/37] Lists and maps it's important to remember which one you're working with --- services/managers/teamspeak3_manager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 28a32591..f91eff88 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -117,8 +117,9 @@ class Teamspeak3Manager: def _sync_ts_group_db(): remote_groups = Teamspeak3Manager._group_list() local_groups = TSgroup.objects.all() - remote_groups = [ int(id) for id in remote_groups ] - + for key in remote_groups: + remote_groups[key] = int(remote_groups[key]) + print("--Doing group sync--") print("Remote groups {0}").format(remote_groups.values()) for group in local_groups: From 5a03565f8627fa5ffa21a241638f854c1e4d72aa Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 23:43:21 -0500 Subject: [PATCH 32/37] So close but no qute --- services/managers/teamspeak3_manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index f91eff88..4bdc49df 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -132,6 +132,7 @@ class Teamspeak3Manager: print("(For Adds) Processing {0}").format(key) g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) + print("Is {0} in {1}?").format(g,q) if not q: print("Saving {0} to DB").format(g.ts_group_name) g.save() From b29d6bd7da9da66e1a229df4292b059f73dab8ea Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Mon, 2 Nov 2015 23:55:20 -0500 Subject: [PATCH 33/37] Don't need that Testing --- celerytask/tasks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/celerytask/tasks.py b/celerytask/tasks.py index 4c1fca62..82398e49 100755 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -167,8 +167,8 @@ def remove_from_databases(user, groups, syncgroups): update_forum_groups(user) if authserviceinfo.ipboard_username and authserviceinfo.ipboard_username != "": update_ipboard_groups(user) - if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "": - update_teamspeak3_groups(user) + #if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "": + # update_teamspeak3_groups(user) # Run every minute From adcbcdaf528fef568f369ac7d45d1c07d1bfec87 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Tue, 3 Nov 2015 00:41:37 -0500 Subject: [PATCH 34/37] Casting int to str because it's better than trying to compare them shithead --- services/managers/teamspeak3_manager.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 4bdc49df..4b83600e 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -105,11 +105,12 @@ class Teamspeak3Manager: @staticmethod def _remove_user_from_group(uid, groupid): + print("--REMOVING GROUP FROM USER--") server = Teamspeak3Manager.__get_created_server() server_groups = Teamspeak3Manager._group_list() user_groups = Teamspeak3Manager._user_group_list(uid) - if groupid in user_groups: + if str(groupid) in user_groups: server.send_command('servergroupdelclient', {'sgid': str(groupid), 'cldbid': uid}) From b2eadc2a78e5c8b7b99b0ffd6a0ba0005a10ae13 Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Tue, 3 Nov 2015 00:46:35 -0500 Subject: [PATCH 35/37] logging yes more --- services/managers/teamspeak3_manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 4b83600e..bb94b278 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -110,6 +110,7 @@ class Teamspeak3Manager: server_groups = Teamspeak3Manager._group_list() user_groups = Teamspeak3Manager._user_group_list(uid) + print("Is {0} in {1}?").format(str(groupid), user_groups) if str(groupid) in user_groups: server.send_command('servergroupdelclient', {'sgid': str(groupid), 'cldbid': uid}) From c8d7ea2ca90c6ed4b5a499edf5a75a0ea9a6f91e Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Tue, 3 Nov 2015 00:53:44 -0500 Subject: [PATCH 36/37] FUCKING MAPS AND LISTS FUUUUUUUUUUUUUUUUUUUUUCK --- services/managers/teamspeak3_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index bb94b278..498c972c 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -111,7 +111,7 @@ class Teamspeak3Manager: user_groups = Teamspeak3Manager._user_group_list(uid) print("Is {0} in {1}?").format(str(groupid), user_groups) - if str(groupid) in user_groups: + if str(groupid) in user_groups.values(): server.send_command('servergroupdelclient', {'sgid': str(groupid), 'cldbid': uid}) From c9958ebbb5f218596a2f82ce6eaa67e082bb51bc Mon Sep 17 00:00:00 2001 From: Brett Costabile Date: Tue, 3 Nov 2015 01:18:08 -0500 Subject: [PATCH 37/37] Removed all my logging I'm done. Don't need this anymore. --- celerytask/tasks.py | 8 ++------ services/managers/teamspeak3_manager.py | 18 ------------------ 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/celerytask/tasks.py b/celerytask/tasks.py index 82398e49..f38eeffa 100755 --- a/celerytask/tasks.py +++ b/celerytask/tasks.py @@ -73,14 +73,10 @@ def update_ipboard_groups(user): def update_teamspeak3_groups(user): - print "Running update_teamspeak3_groups" - print("user = {0}").format(user) usergroups = User.objects.get(id=user.id).groups.all() - print("usergroups = {0}").format(usergroups) authserviceinfo = AuthServicesInfo.objects.get(user=user) groups = {} for usergroup in usergroups: - print("usergroup = {0}").format(usergroup) filtered_groups = AuthTS.objects.filter(auth_group=usergroup) if filtered_groups: for filtered_group in filtered_groups: @@ -167,8 +163,8 @@ def remove_from_databases(user, groups, syncgroups): update_forum_groups(user) if authserviceinfo.ipboard_username and authserviceinfo.ipboard_username != "": update_ipboard_groups(user) - #if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "": - # update_teamspeak3_groups(user) + if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "": + update_teamspeak3_groups(user) # Run every minute diff --git a/services/managers/teamspeak3_manager.py b/services/managers/teamspeak3_manager.py index 498c972c..32a27aaa 100755 --- a/services/managers/teamspeak3_manager.py +++ b/services/managers/teamspeak3_manager.py @@ -105,12 +105,10 @@ class Teamspeak3Manager: @staticmethod def _remove_user_from_group(uid, groupid): - print("--REMOVING GROUP FROM USER--") server = Teamspeak3Manager.__get_created_server() server_groups = Teamspeak3Manager._group_list() user_groups = Teamspeak3Manager._user_group_list(uid) - print("Is {0} in {1}?").format(str(groupid), user_groups) if str(groupid) in user_groups.values(): server.send_command('servergroupdelclient', {'sgid': str(groupid), 'cldbid': uid}) @@ -122,21 +120,13 @@ class Teamspeak3Manager: for key in remote_groups: remote_groups[key] = int(remote_groups[key]) - print("--Doing group sync--") - print("Remote groups {0}").format(remote_groups.values()) for group in local_groups: - print("(For Removals) Processing {0}").format(group.ts_group_name) if group.ts_group_id not in remote_groups.values(): - print("GroupID={0}").format(group.ts_group_id) - print("Removing {0} from DB").format(group.ts_group_name) TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete() for key in remote_groups: - print("(For Adds) Processing {0}").format(key) g = TSgroup(ts_group_id=remote_groups[key],ts_group_name=key) q = TSgroup.objects.filter(ts_group_id=g.ts_group_id) - print("Is {0} in {1}?").format(g,q) if not q: - print("Saving {0} to DB").format(g.ts_group_name) g.save() @staticmethod @@ -228,9 +218,6 @@ class Teamspeak3Manager: @staticmethod def update_groups(uid, ts_groups): - print "--Running update_groups--" - print("uid = {0}").format(uid) - print("ts_groups = {0}").format(ts_groups) userid = Teamspeak3Manager._get_userid(uid) addgroups = [] remgroups = [] @@ -238,16 +225,11 @@ class Teamspeak3Manager: user_ts_groups = Teamspeak3Manager._user_group_list(userid) for key in user_ts_groups: user_ts_groups[key] = int(user_ts_groups[key]) - print("user_ts_groups = {0}").format(user_ts_groups) for ts_group_key in ts_groups: - print("(For addgroups) GID: {0} Name: {1}").format(ts_groups[ts_group_key],ts_group_key) if ts_groups[ts_group_key] not in user_ts_groups.values(): - print("Adding {0}").format(ts_group_key) addgroups.append(ts_groups[ts_group_key]) for user_ts_group_key in user_ts_groups: - print("(For remgroups) GID: {0} Name: {1}").format(user_ts_groups[user_ts_group_key],user_ts_group_key) if user_ts_groups[user_ts_group_key] not in ts_groups.values(): - print("Value {0} not found").format(user_ts_groups[user_ts_group_key]) remgroups.append(user_ts_groups[user_ts_group_key]) print userid