Lots of changes, not tested

Pushing latest changes to run them by a few folks.
This commit is contained in:
Brett Costabile 2015-05-28 01:23:45 -04:00
parent 423e0ad161
commit c86ba4990d
6 changed files with 45 additions and 26 deletions

1
.gitignore vendored
View File

@ -56,3 +56,4 @@ target/
.vagrant/
alliance_auth/settings.py
requirements.txt
static/admin/img/Thumbs.db

View File

@ -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)

View File

@ -1,5 +1,5 @@
# Python Stuff # - see bootstrap.sh
mysql-python
# mysql-python
evelink
dnspython
passlib

View File

@ -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)

View File

@ -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:

View File

@ -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)
user = models.ForeignKey('auth.User')
ts_group = models.ManyToManyField(TSgroup)
class Meta:
verbose_name='User / TS Group'
def __str__(self):
return self.user.name