mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-16 16:00:17 +02:00
parent
106f6bbcea
commit
89e5740027
@ -36,8 +36,6 @@ class AutogroupsConfigManager(models.Manager):
|
|||||||
:param state: State to update user for
|
:param state: State to update user for
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
import traceback
|
|
||||||
print(traceback.print_stack())
|
|
||||||
if state is None:
|
if state is None:
|
||||||
state = user.profile.state
|
state = user.profile.state
|
||||||
for config in self.filter(states=state):
|
for config in self.filter(states=state):
|
||||||
|
@ -2,6 +2,7 @@ import logging
|
|||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.db.models.signals import pre_save, post_save, pre_delete, m2m_changed
|
from django.db.models.signals import pre_save, post_save, pre_delete, m2m_changed
|
||||||
from allianceauth.authentication.models import UserProfile, State
|
from allianceauth.authentication.models import UserProfile, State
|
||||||
|
from allianceauth.eveonline.models import EveCharacter
|
||||||
|
|
||||||
from .models import AutogroupsConfig
|
from .models import AutogroupsConfig
|
||||||
|
|
||||||
@ -62,3 +63,13 @@ def autogroups_states_changed(sender, instance, action, reverse, model, pk_set,
|
|||||||
except State.DoesNotExist:
|
except State.DoesNotExist:
|
||||||
# Deleted States handled by the profile state change
|
# Deleted States handled by the profile state change
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(post_save, sender=EveCharacter)
|
||||||
|
def check_groups_on_character_update(sender, instance, created, *args, **kwargs):
|
||||||
|
if not created:
|
||||||
|
try:
|
||||||
|
profile = UserProfile.objects.prefetch_related('user').get(main_character_id=instance.pk)
|
||||||
|
AutogroupsConfig.objects.update_groups_for_user(profile.user)
|
||||||
|
except UserProfile.DoesNotExist:
|
||||||
|
pass
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.contrib.auth.models import Group, User
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
from allianceauth.tests.auth_utils import AuthUtils
|
from allianceauth.tests.auth_utils import AuthUtils
|
||||||
|
|
||||||
from allianceauth.eveonline.models import EveCharacter, EveCorporationInfo, EveAllianceInfo
|
from allianceauth.eveonline.models import EveCharacter, EveCorporationInfo, EveAllianceInfo
|
||||||
|
|
||||||
from ..models import AutogroupsConfig, ManagedAllianceGroup
|
from ..models import AutogroupsConfig
|
||||||
|
|
||||||
from . import patch, disconnect_signals, connect_signals
|
from . import patch, disconnect_signals, connect_signals
|
||||||
|
|
||||||
@ -52,8 +52,7 @@ class SignalsTestCase(TestCase):
|
|||||||
@patch('.models.AutogroupsConfigManager.update_groups_for_user')
|
@patch('.models.AutogroupsConfigManager.update_groups_for_user')
|
||||||
def test_check_groups_on_profile_update_state(self, update_groups_for_user):
|
def test_check_groups_on_profile_update_state(self, update_groups_for_user):
|
||||||
# Trigger signal
|
# Trigger signal
|
||||||
self.member.profile.state = AuthUtils.get_guest_state()
|
self.member.profile.assign_state(state=AuthUtils.get_guest_state())
|
||||||
self.member.profile.save()
|
|
||||||
|
|
||||||
self.assertTrue(update_groups_for_user.called)
|
self.assertTrue(update_groups_for_user.called)
|
||||||
self.assertEqual(update_groups_for_user.call_count, 1)
|
self.assertEqual(update_groups_for_user.call_count, 1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user