mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-10 00:56:19 +01:00
Name generator/formatter (#897)
* Squash services migrations * Add name to example service to allow it to be used in tests * Add name formatter to services * Add documentation
This commit is contained in:
@@ -21,6 +21,7 @@ class MumbleService(ServicesHook):
|
||||
self.service_url = settings.MUMBLE_URL
|
||||
self.access_perm = 'mumble.access_mumble'
|
||||
self.service_ctrl_template = 'services/mumble/mumble_service_ctrl.html'
|
||||
self.name_format = '[{corp_ticker}]{character_name}'
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logging.debug("Deleting user %s %s account" % (user, self.name))
|
||||
|
||||
@@ -26,25 +26,14 @@ class MumbleManager:
|
||||
def __generate_random_pass():
|
||||
return ''.join([random.choice(string.ascii_letters + string.digits) for n in range(16)])
|
||||
|
||||
@staticmethod
|
||||
def __generate_username(username, corp_ticker):
|
||||
return "[" + corp_ticker + "]" + username
|
||||
|
||||
@staticmethod
|
||||
def __generate_username_blue(username, corp_ticker):
|
||||
return "[BLUE][" + corp_ticker + "]" + username
|
||||
|
||||
@classmethod
|
||||
def _gen_pwhash(cls, password):
|
||||
return bcrypt_sha256.encrypt(password.encode('utf-8'))
|
||||
|
||||
@classmethod
|
||||
def create_user(cls, user, corp_ticker, username, blue=False):
|
||||
logger.debug("Creating%s mumble user with username %s and ticker %s" % (' blue' if blue else '',
|
||||
username, corp_ticker))
|
||||
username_clean = cls.__santatize_username(
|
||||
cls.__generate_username_blue(username, corp_ticker) if blue else
|
||||
cls.__generate_username(username, corp_ticker))
|
||||
def create_user(cls, user, username):
|
||||
logger.debug("Creating mumble user with username %s" % (username))
|
||||
username_clean = cls.__santatize_username(username)
|
||||
password = cls.__generate_random_pass()
|
||||
pwhash = cls._gen_pwhash(password)
|
||||
logger.debug("Proceeding with mumble user creation: clean username %s, pwhash starts with %s" % (
|
||||
|
||||
@@ -2,6 +2,7 @@ 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
|
||||
@@ -26,6 +27,11 @@ 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):
|
||||
|
||||
@@ -18,10 +18,9 @@ ACCESS_PERM = 'mumble.access_mumble'
|
||||
def activate_mumble(request):
|
||||
logger.debug("activate_mumble called by user %s" % request.user)
|
||||
character = request.user.profile.main_character
|
||||
ticker = character.corporation_ticker
|
||||
|
||||
logger.debug("Adding mumble user for %s with main character %s" % (request.user, character))
|
||||
result = MumbleManager.create_user(request.user, ticker, character.character_name)
|
||||
result = MumbleManager.create_user(request.user, MumbleTasks.get_username(request.user))
|
||||
|
||||
if result:
|
||||
logger.debug("Updated authserviceinfo for user %s with mumble credentials. Updating groups." % request.user)
|
||||
|
||||
Reference in New Issue
Block a user