mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-10 00:56:19 +01:00
Fix state role not always updated due to lazy properties
This commit is contained in:
@@ -96,10 +96,13 @@ class DiscordUser(models.Model):
|
||||
else:
|
||||
return False
|
||||
|
||||
def update_groups(self) -> bool:
|
||||
def update_groups(self, state_name: str = None) -> bool:
|
||||
"""update groups for a user based on his current group memberships.
|
||||
Will add or remove roles of a user as needed.
|
||||
|
||||
Params:
|
||||
- state_name: optional state name to be used
|
||||
|
||||
Returns:
|
||||
- True on success
|
||||
- None if user is no longer a member of the Discord server
|
||||
@@ -132,7 +135,9 @@ class DiscordUser(models.Model):
|
||||
requested_roles = match_or_create_roles_from_names(
|
||||
client=client,
|
||||
guild_id=DISCORD_GUILD_ID,
|
||||
role_names=DiscordUser.objects.user_group_names(self.user)
|
||||
role_names=DiscordUser.objects.user_group_names(
|
||||
user=self.user, state_name=state_name
|
||||
)
|
||||
)
|
||||
logger.debug(
|
||||
'Requested roles for user %s: %s', self.user, requested_roles.ids()
|
||||
@@ -148,13 +153,13 @@ class DiscordUser(models.Model):
|
||||
role_ids=list(new_roles.ids())
|
||||
)
|
||||
if success:
|
||||
logger.info('Groups for %s have been updated', self.user)
|
||||
logger.info('Roles for %s have been updated', self.user)
|
||||
else:
|
||||
logger.warning('Failed to update groups for %s', self.user)
|
||||
logger.warning('Failed to update roles for %s', self.user)
|
||||
return success
|
||||
|
||||
else:
|
||||
logger.info('No need to update groups for user %s', self.user)
|
||||
logger.info('No need to update roles for user %s', self.user)
|
||||
return True
|
||||
|
||||
def update_username(self) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user