28 lines
990 B
Python
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}")
|