mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-13 06:20:16 +02:00
[ADD] Respect and display the new Discord username format when eligible
This commit is contained in:
parent
36b3077caa
commit
7856cd5ce4
@ -6,6 +6,7 @@ from ...admin import ServicesUserAdmin
|
|||||||
from . import __title__
|
from . import __title__
|
||||||
from .models import DiscordUser
|
from .models import DiscordUser
|
||||||
from .utils import LoggerAddTag
|
from .utils import LoggerAddTag
|
||||||
|
from .auth_hooks import DiscordService
|
||||||
|
|
||||||
logger = LoggerAddTag(logging.getLogger(__name__), __title__)
|
logger = LoggerAddTag(logging.getLogger(__name__), __title__)
|
||||||
|
|
||||||
@ -27,6 +28,6 @@ class DiscordUserAdmin(ServicesUserAdmin):
|
|||||||
|
|
||||||
@admin.display(description='Discord Username', ordering='username')
|
@admin.display(description='Discord Username', ordering='username')
|
||||||
def _username(self, obj):
|
def _username(self, obj):
|
||||||
if obj.username and obj.discriminator:
|
return DiscordService.get_discord_username(
|
||||||
return f'{obj.username}#{obj.discriminator}'
|
username=obj.username, discriminator=obj.discriminator
|
||||||
return ''
|
)
|
||||||
|
@ -30,6 +30,29 @@ class DiscordService(ServicesHook):
|
|||||||
self.access_perm = 'discord.access_discord'
|
self.access_perm = 'discord.access_discord'
|
||||||
self.name_format = '{character_name}'
|
self.name_format = '{character_name}'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_discord_username(username:str, discriminator:str) -> str:
|
||||||
|
"""
|
||||||
|
Determine the Discord username (Old and new format)
|
||||||
|
:param username:
|
||||||
|
:type username:
|
||||||
|
:param discriminator:
|
||||||
|
:type discriminator:
|
||||||
|
:return:
|
||||||
|
:rtype:
|
||||||
|
"""
|
||||||
|
|
||||||
|
if username and discriminator:
|
||||||
|
discord_username = f'{username}#{discriminator}'
|
||||||
|
|
||||||
|
# New Discord user name format
|
||||||
|
if discriminator == '0':
|
||||||
|
discord_username = f'@{username}'
|
||||||
|
else:
|
||||||
|
discord_username = ''
|
||||||
|
|
||||||
|
return discord_username
|
||||||
|
|
||||||
def delete_user(self, user: User, notify_user: bool = False) -> None:
|
def delete_user(self, user: User, notify_user: bool = False) -> None:
|
||||||
if self.user_has_account(user):
|
if self.user_has_account(user):
|
||||||
logger.debug('Deleting user %s %s account', user, self.name)
|
logger.debug('Deleting user %s %s account', user, self.name)
|
||||||
@ -43,10 +66,19 @@ class DiscordService(ServicesHook):
|
|||||||
user_has_account = True
|
user_has_account = True
|
||||||
username = request.user.discord.username
|
username = request.user.discord.username
|
||||||
discriminator = request.user.discord.discriminator
|
discriminator = request.user.discord.discriminator
|
||||||
if username and discriminator:
|
|
||||||
discord_username = f'{username}#{discriminator}'
|
discord_username = self.get_discord_username(
|
||||||
else:
|
username=username, discriminator=discriminator
|
||||||
discord_username = ''
|
)
|
||||||
|
|
||||||
|
# if username and discriminator:
|
||||||
|
# discord_username = f'{username}#{discriminator}'
|
||||||
|
#
|
||||||
|
# # New Discord user name format
|
||||||
|
# if discriminator == '0':
|
||||||
|
# discord_username = f'@{username}'
|
||||||
|
# else:
|
||||||
|
# discord_username = ''
|
||||||
else:
|
else:
|
||||||
discord_username = ''
|
discord_username = ''
|
||||||
user_has_account = False
|
user_has_account = False
|
||||||
|
@ -150,3 +150,23 @@ class TestDiscordService(NoSocketsTestCase):
|
|||||||
self.assertTemplateUsed(service.service_ctrl_template)
|
self.assertTemplateUsed(service.service_ctrl_template)
|
||||||
self.assertIn('/discord/reset/', response)
|
self.assertIn('/discord/reset/', response)
|
||||||
self.assertIn('/discord/deactivate/', response)
|
self.assertIn('/discord/deactivate/', response)
|
||||||
|
|
||||||
|
def test_new_discord_username_format(self):
|
||||||
|
"""
|
||||||
|
Test if we get Discord's new username format
|
||||||
|
:return:
|
||||||
|
:rtype:
|
||||||
|
"""
|
||||||
|
|
||||||
|
# given
|
||||||
|
username = 'william_riker'
|
||||||
|
discriminator = '0' # Seems to be returned as 0 for Discord's new username format
|
||||||
|
|
||||||
|
# when
|
||||||
|
discord_username = DiscordService.get_discord_username(
|
||||||
|
username=username, discriminator=discriminator
|
||||||
|
)
|
||||||
|
|
||||||
|
# then
|
||||||
|
expected_username = '@william_riker'
|
||||||
|
self.assertEqual(first=discord_username, second=expected_username)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user