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}")
 |