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 00000000..91d9710a Binary files /dev/null and b/static/img/index_images/Thumbs.db differ diff --git a/vagrant/bootstrap.sh b/vagrant/bootstrap.sh index d2b440a3..b933faf5 100755 --- a/vagrant/bootstrap.sh +++ b/vagrant/bootstrap.sh @@ -12,6 +12,15 @@ sudo apt-get -y install python-dev libyaml-dev libffi-dev sudo apt-get -y install python-pip sudo apt-get -y install mysql-server mysql-client +#Python 3 stuff +sudo apt-get -y install python-software-properties +sudo add-apt-repository ppa:fkrull/deadsnakes +sudo apt-get -y update +sudo apt-get -y install python3.3 + +#virtualenv stuff +sudo apt-get -y install python-virtualenv + cd /vagrant/ sudo pip install --upgrade pip