Merge branch 'master' into 'master'

Stop renaming discord nick when setting has it disabled

See merge request allianceauth/allianceauth!1540
This commit is contained in:
Ariel Rin 2023-11-08 13:04:12 +00:00
commit 0dc631d69e
3 changed files with 24 additions and 11 deletions

View File

@ -11,6 +11,9 @@ from .models import DiscordUser
from .urls import urlpatterns from .urls import urlpatterns
from .utils import LoggerAddTag from .utils import LoggerAddTag
from . import tasks, __title__ from . import tasks, __title__
from .app_settings import (
DISCORD_SYNC_NAMES
)
logger = LoggerAddTag(logging.getLogger(__name__), __title__) logger = LoggerAddTag(logging.getLogger(__name__), __title__)
@ -99,17 +102,18 @@ class DiscordService(ServicesHook):
return has_perms return has_perms
def sync_nickname(self, user): def sync_nickname(self, user):
logger.debug('Syncing %s nickname for user %s', self.name, user) if DISCORD_SYNC_NAMES:
if self.user_has_account(user): logger.debug('Syncing %s nickname for user %s', self.name, user)
tasks.update_nickname.apply_async( if self.user_has_account(user):
kwargs={ tasks.update_nickname.apply_async(
'user_pk': user.pk, kwargs={
# since the new nickname is not yet in the DB we need to 'user_pk': user.pk,
# provide it manually to the task # since the new nickname is not yet in the DB we need to
'nickname': user_formatted_nick(user) # provide it manually to the task
}, 'nickname': user_formatted_nick(user)
priority=SINGLE_TASK_PRIORITY },
) priority=SINGLE_TASK_PRIORITY
)
def sync_nicknames_bulk(self, users: list): def sync_nicknames_bulk(self, users: list):
"""Sync nickname for a list of users in bulk. """Sync nickname for a list of users in bulk.

View File

@ -81,11 +81,18 @@ class TestDiscordService(NoSocketsTestCase):
self.assertFalse(DiscordUser.objects.filter(user=self.none_member).exists()) self.assertFalse(DiscordUser.objects.filter(user=self.none_member).exists())
@patch(MODULE_PATH + '.tasks.update_nickname') @patch(MODULE_PATH + '.tasks.update_nickname')
@patch(MODULE_PATH + '.auth_hooks.DISCORD_SYNC_NAMES', True)
def test_sync_nickname(self, mock_update_nickname): def test_sync_nickname(self, mock_update_nickname):
service = self.service() service = self.service()
service.sync_nickname(self.member) service.sync_nickname(self.member)
self.assertTrue(mock_update_nickname.apply_async.called) self.assertTrue(mock_update_nickname.apply_async.called)
@patch(MODULE_PATH + '.tasks.update_nickname')
def test_sync_nickname_no_setting(self, mock_update_nickname):
service = self.service()
service.sync_nickname(self.member)
self.assertFalse(mock_update_nickname.apply_async.called)
@patch(MODULE_PATH + '.tasks.update_nicknames_bulk') @patch(MODULE_PATH + '.tasks.update_nicknames_bulk')
def test_sync_nicknames_bulk(self, mock_update_nicknames_bulk): def test_sync_nicknames_bulk(self, mock_update_nicknames_bulk):
service = self.service() service = self.service()

View File

@ -164,6 +164,7 @@ class TestServiceFeatures(TransactionTestCase):
self.discord_user = DiscordUser.objects.create(user=self.user, uid=TEST_USER_ID) self.discord_user = DiscordUser.objects.create(user=self.user, uid=TEST_USER_ID)
self.assertTrue(DiscordUser.objects.user_has_account(self.user)) self.assertTrue(DiscordUser.objects.user_has_account(self.user))
@patch(MODULE_PATH + '.auth_hooks.DISCORD_SYNC_NAMES', True)
def test_when_name_of_main_changes_then_discord_nick_is_updated( def test_when_name_of_main_changes_then_discord_nick_is_updated(
self, requests_mocker self, requests_mocker
): ):
@ -185,6 +186,7 @@ class TestServiceFeatures(TransactionTestCase):
self.assertTrue(nick_updated) self.assertTrue(nick_updated)
self.assertTrue(DiscordUser.objects.user_has_account(self.user)) self.assertTrue(DiscordUser.objects.user_has_account(self.user))
@patch(MODULE_PATH + '.auth_hooks.DISCORD_SYNC_NAMES', True)
def test_when_name_of_main_changes_and_user_deleted_then_account_is_deleted( def test_when_name_of_main_changes_and_user_deleted_then_account_is_deleted(
self, requests_mocker self, requests_mocker
): ):