mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 12:30:15 +02:00
Lots of changes, not tested
Pushing latest changes to run them by a few folks.
This commit is contained in:
parent
423e0ad161
commit
c86ba4990d
1
.gitignore
vendored
1
.gitignore
vendored
@ -56,3 +56,4 @@ target/
|
||||
.vagrant/
|
||||
alliance_auth/settings.py
|
||||
requirements.txt
|
||||
static/admin/img/Thumbs.db
|
||||
|
@ -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)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Python Stuff # - see bootstrap.sh
|
||||
mysql-python
|
||||
# mysql-python
|
||||
evelink
|
||||
dnspython
|
||||
passlib
|
||||
|
@ -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)
|
@ -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:
|
||||
|
@ -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
|
Loading…
x
Reference in New Issue
Block a user