mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 12:30:15 +02:00
Alter user field to OneToOneField Migration to enforce uniqueness pre-change Migration to ensure all users have an AuthServicesInfo Receiver to automatically create one upon user creation Replace AuthServicesInfo.get_or_create with get Prevent deletion of AuthServicesInfo from admin site Remove add and delete permissions from model. Get character names in chunks on corpstats update to prevent HTTP400 when requesting >350(ish) names Include corpstats docs. Update settings docs.
35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
from __future__ import unicode_literals
|
|
from django.db.models.signals import pre_save, post_save
|
|
from django.dispatch import receiver
|
|
from django.contrib.auth.models import User
|
|
from authentication.models import AuthServicesInfo
|
|
from authentication.states import MEMBER_STATE, BLUE_STATE
|
|
from authentication.tasks import make_member, make_blue, disable_member
|
|
from services.tasks import validate_services
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@receiver(pre_save, sender=AuthServicesInfo)
|
|
def pre_save_auth_state(sender, instance, *args, **kwargs):
|
|
if instance.pk:
|
|
old_instance = AuthServicesInfo.objects.get(pk=instance.pk)
|
|
if old_instance.state != instance.state:
|
|
logger.debug('Detected state change for %s' % instance.user)
|
|
if instance.state == MEMBER_STATE:
|
|
make_member(instance)
|
|
elif instance.state == BLUE_STATE:
|
|
make_blue(instance)
|
|
else:
|
|
disable_member(instance.user)
|
|
validate_services(instance.user, instance.state)
|
|
|
|
|
|
@receiver(post_save, sender=User)
|
|
def post_save_user(sender, instance, created, *args, **kwargs):
|
|
# ensure all users have a model
|
|
if created:
|
|
AuthServicesInfo.objects.get_or_create(user=instance)
|
|
|