mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-10 00:56:19 +01:00
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:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user