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/ .vagrant/
alliance_auth/settings.py alliance_auth/settings.py
requirements.txt 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.phpbb3_manager import Phpbb3Manager
from services.managers.ipboard_manager import IPBoardManager from services.managers.ipboard_manager import IPBoardManager
from services.managers.teamspeak3_manager import Teamspeak3Manager from services.managers.teamspeak3_manager import Teamspeak3Manager
from services.models import AuthTS
from services.models import TSgroup
from authentication.models import AuthServicesInfo from authentication.models import AuthServicesInfo
from eveonline.managers import EveManager from eveonline.managers import EveManager
from services.managers.eve_api_manager import EveApiManager from services.managers.eve_api_manager import EveApiManager
@ -71,14 +73,11 @@ def update_ipboard_groups(user):
def update_teamspeak3_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) authserviceinfo = AuthServicesInfo.objects.get(user=user)
groups = [] groups = []
for syncgroup in syncgroups: for usergroup in usergroups:
groups.append(str(syncgroup.groupname)) groups += list(AuthTS.objects.filter(auth_group=usergroup))
if len(groups) == 0:
groups.append('empty')
Teamspeak3Manager.update_groups(authserviceinfo.teamspeak3_uid, groups) Teamspeak3Manager.update_groups(authserviceinfo.teamspeak3_uid, groups)

View File

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

View File

@ -4,10 +4,11 @@ from .models import TSgroup
from .models import UserTSgroup from .models import UserTSgroup
class AuthTSgroupAdmin(admin.ModelAdmin): class AuthTSgroupAdmin(admin.ModelAdmin):
fields = ['ts_group_id','auth_group_id'] fields = ['auth_group','ts_group']
filter_horizontal = ('ts_group',)
class TSgroupAdmin(admin.ModelAdmin): class TSgroupAdmin(admin.ModelAdmin):
fields = ['name'] fields = ['ts_group_name']
admin.site.register(AuthTS, AuthTSgroupAdmin) admin.site.register(AuthTS, AuthTSgroupAdmin)
admin.site.register(TSgroup, TSgroupAdmin) admin.site.register(TSgroup, TSgroupAdmin)

View File

@ -124,7 +124,7 @@ class Teamspeak3Manager:
remote_groups = Teamspeak3Manager._group_list() remote_groups = Teamspeak3Manager._group_list()
local_groups = TSgroup.objects.all() local_groups = TSgroup.objects.all()
for key in remote_groups: 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 @staticmethod
def add_user(username, corp_ticker): def add_user(username, corp_ticker):
@ -217,25 +217,24 @@ class Teamspeak3Manager:
def update_groups(uid, l_groups): def update_groups(uid, l_groups):
print uid print uid
print l_groups print l_groups
Teamspeak3Manager._sync_ts_group_db()
userid = Teamspeak3Manager._get_userid(uid) userid = Teamspeak3Manager._get_userid(uid)
act_groups = []
if userid is not None: if userid is not None:
server_groups = Teamspeak3Manager._group_list() user_ts_groups = set(Teamspeak3Manager._user_group_list(userid))
user_groups = set(Teamspeak3Manager._user_group_list(userid)) for key in user_ts_groups:
groups = [] for group in l_groups:
for l_group in l_groups: if group.auth_group.id = user_ts_groups[key]:
groups.append(l_group[:30]) act_groups += group
act_groups = set([g.replace(' ', '-') for g in groups]) addgroups = act_groups - l_groups
addgroups = act_groups - user_groups remgroups = l_groups - act_groups
remgroups = user_groups - act_groups
print userid print userid
print addgroups print addgroups
print remgroups print remgroups
for g in addgroups: for g in addgroups:
if not g in server_groups.keys():
Teamspeak3Manager._create_group(g)
Teamspeak3Manager._add_user_to_group(userid, g) Teamspeak3Manager._add_user_to_group(userid, g)
for g in remgroups: for g in remgroups:

View File

@ -1,13 +1,32 @@
from django.db import models from django.db import models
from django.contrib.auth.models import Group
class TSgroup(models.Model): class TSgroup(models.Model):
group_id = models.IntegerField(primary_key=True) ts_group_id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=30) 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): class AuthTS(models.Model):
ts_group_id = models.ForeignKey(TSgroup) auth_group = models.ForeignKey('auth.Group')
auth_group_id = 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): class UserTSgroup(models.Model):
user_id = models.ForeignKey('auth.User') user = models.ForeignKey('auth.User')
group_id = models.ManyToManyField(TSgroup) ts_group = models.ManyToManyField(TSgroup)
class Meta:
verbose_name='User / TS Group'
def __str__(self):
return self.user.name