mumui/deployment/signals.py
2023-09-24 16:33:34 +02:00

28 lines
990 B
Python

from django.contrib.auth.models import User, Permission
from django.db import transaction
from django.db.models.signals import post_save
from django.dispatch import receiver
from deployment.models import DeploymentUser
@receiver(post_save, sender=User)
def user_created_callback(sender, instance: User, created, **kwargs):
if created:
try:
with transaction.atomic():
if not instance.is_superuser:
permission = Permission.objects.get(
codename="view_event",
content_type__app_label="django_eventstream",
)
instance.user_permissions.add(permission)
permission.save()
user = DeploymentUser(
user=instance, credits=-1 if instance.is_superuser else 3
)
user.save()
except Exception as e:
print(f"deployment user creation failed: {e}")