Refactor mumble service (#914)

* Added in_organisation check to EveCharacter model

* Basic name formatter

* Switch mumble service to use name formatter

* Squash services migrations

* Add name to example service to allow it to be used in tests

* Add name formatter to services

* Add abstract views, model, form for services modules

* Refactor mumble service to new style

* Don't set credentials if setting a provided password

* Add success message to set password view
This commit is contained in:
Basraah
2017-11-04 06:52:45 +10:00
committed by Adarnof
parent c4979a22dd
commit 86362bb0dd
13 changed files with 342 additions and 239 deletions

View File

@@ -2,10 +2,8 @@ import logging
from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
from allianceauth.services.hooks import NameFormatter
from allianceauth.celery import app
from .manager import MumbleManager
from .models import MumbleUser
logger = logging.getLogger(__name__)
@@ -27,32 +25,25 @@ class MumbleTasks:
logger.info("Deleting all MumbleUser models")
MumbleUser.objects.all().delete()
@staticmethod
def get_username(user):
from .auth_hooks import MumbleService
return NameFormatter(MumbleService(), user).format_name()
@staticmethod
@app.task(bind=True, name="mumble.update_groups")
def update_groups(self, pk):
user = User.objects.get(pk=pk)
logger.debug("Updating mumble groups for user %s" % user)
if MumbleTasks.has_account(user):
groups = []
for group in user.groups.all():
groups.append(str(group.name))
if len(groups) == 0:
groups.append('empty')
logger.debug("Updating user %s mumble groups to %s" % (user, groups))
try:
if not MumbleManager.update_groups(user, groups):
if not user.mumble.update_groups():
raise Exception("Group sync failed")
logger.debug("Updated user %s mumble groups." % user)
return True
except MumbleUser.DoesNotExist:
logger.info("Mumble group sync failed for {}, user does not have a mumble account".format(user))
except:
logger.exception("Mumble group sync failed for %s, retrying in 10 mins" % user)
raise self.retry(countdown=60 * 10)
logger.debug("Updated user %s mumble groups." % user)
else:
logger.debug("User %s does not have a mumble account, skipping" % user)
return False
@staticmethod
@app.task(name="mumble.update_all_groups")