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

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