Fixed issue where syncgroups were preventing other groups from being created if a service is added after.

This commit is contained in:
Raynaldo Rivera
2014-11-29 16:01:23 -07:00
parent 551cf01b44
commit de34d35add
6 changed files with 66 additions and 35 deletions

View File

@@ -4,7 +4,9 @@ from django.contrib.auth.models import User
class SyncGroupCache(models.Model):
groupname = models.CharField(max_length=254)
servicename = models.CharField(max_length=254, default="")
user = models.ForeignKey(User)
def __str__(self):
return self.user.username + ' - ' + self.groupname + ' - SyncGroupCache'
return self.user.username + ' - ' + self.groupname + ' - ' + self.servicename + ' - SyncGroupCache'

View File

@@ -83,6 +83,14 @@ def update_teamspeak3_groups(user):
Teamspeak3Manager.update_groups(authserviceinfo.teamspeak3_uid, groups)
def create_syncgroup_for_user(user, groupname, servicename):
synccache = SyncGroupCache()
synccache.groupname = groupname
synccache.user = user
synccache.servicename = servicename
synccache.save()
def add_to_databases(user, groups, syncgroups):
authserviceinfo = None
try:
@@ -95,25 +103,27 @@ def add_to_databases(user, groups, syncgroups):
update = False
for group in groups:
syncgroup = syncgroups.filter(groupname=group.name)
if not syncgroup:
synccache = SyncGroupCache()
synccache.groupname = group.name
synccache.user = user
synccache.save()
update = True
if update:
if authserviceinfo.jabber_username and authserviceinfo.jabber_username != "":
update_jabber_groups(user)
if syncgroups.filter(groupname=group.name).filter(servicename="openfire").exists() is not True:
create_syncgroup_for_user(user, group.name, "openfire")
update_jabber_groups(user)
if authserviceinfo.mumble_username and authserviceinfo.mumble_username != "":
update_mumble_groups(user)
if syncgroups.filter(groupname=group.name).filter(servicename="mumble").exists() is not True:
create_syncgroup_for_user(user, group.name, "mumble")
update_mumble_groups(user)
if authserviceinfo.forum_username and authserviceinfo.forum_username != "":
update_forum_groups(user)
if syncgroups.filter(groupname=group.name).filter(servicename="phpbb3").exists() is not True:
create_syncgroup_for_user(user, group.name, "phpbb3")
update_forum_groups(user)
if authserviceinfo.ipboard_username and authserviceinfo.ipboard_username != "":
update_ipboard_groups(user)
if syncgroups.filter(groupname=group.name).filter(servicename="ipboard").exists() is not True:
create_syncgroup_for_user(user, group.name, "ipboard")
update_ipboard_groups(user)
if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "":
update_teamspeak3_groups(user)
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)
def remove_from_databases(user, groups, syncgroups):