diff --git a/kypo/sandbox_instance_app/lib/email_notifications.py b/kypo/sandbox_instance_app/lib/email_notifications.py index a6b7a535173dc76d2c96278f4bcd0e87df8e0c10..e1bfbe0d0f07c616126ee70785a82839971f2f52 100644 --- a/kypo/sandbox_instance_app/lib/email_notifications.py +++ b/kypo/sandbox_instance_app/lib/email_notifications.py @@ -21,7 +21,7 @@ def send_email(receiver_email, subject, body, kypo_config: KypoConfiguration): em['Subject'] = subject em.set_content(body) - if kypo_config.sender_email_password is None: + if not kypo_config.sender_email_password: send_insecure_email(receiver_email, em, kypo_config) else: send_secure_email(receiver_email, em, kypo_config) diff --git a/kypo/sandbox_instance_app/migrations/0011_alter_pool_send_emails_and_more.py b/kypo/sandbox_instance_app/migrations/0011_alter_pool_send_emails_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..663810156c315633e82d4ee2dccb502892ca22bc --- /dev/null +++ b/kypo/sandbox_instance_app/migrations/0011_alter_pool_send_emails_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.0.6 on 2024-06-07 10:49 + +import django.db.models.deletion +import kypo.sandbox_instance_app.lib.email_notifications +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sandbox_instance_app', '0010_pool_send_emails_sandboxrequestgroup'), + ] + + operations = [ + migrations.AlterField( + model_name='pool', + name='send_emails', + field=models.BooleanField(default=False, validators=[kypo.sandbox_instance_app.lib.email_notifications.validate_emails_enabled]), + ), + migrations.AlterField( + model_name='sandboxrequestgroup', + name='pool', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sandbox_instance_app.pool'), + ), + ] diff --git a/kypo/sandbox_instance_app/models.py b/kypo/sandbox_instance_app/models.py index 6bc2f5af535c68c95e1adaf222c19ae52fa24d98..cef64e5161924bd8f9bf04036eaf2efd8b429e68 100644 --- a/kypo/sandbox_instance_app/models.py +++ b/kypo/sandbox_instance_app/models.py @@ -356,7 +356,7 @@ class SandboxRequestGroup(models.Model): Keeps track of the request progress and sends email notifications. """ - pool = models.ForeignKey(Pool, on_delete=models.PROTECT) + pool = models.ForeignKey(Pool, on_delete=models.CASCADE) unit_count = models.IntegerField() email = models.EmailField() failed_count = models.IntegerField(default=0) diff --git a/kypo/sandbox_instance_app/serializers.py b/kypo/sandbox_instance_app/serializers.py index dd2e98644ef9d49d90ba23786e7ee1de31c6a116..87750fed7ea68f7515b31fa554840e2e58e58892 100644 --- a/kypo/sandbox_instance_app/serializers.py +++ b/kypo/sandbox_instance_app/serializers.py @@ -40,6 +40,7 @@ class PoolSerializer(serializers.ModelSerializer): instance.max_size = validated_data.get('max_size', instance.max_size) instance.comment = validated_data.get('comment', instance.comment) instance.visible = validated_data.get('visible', instance.visible) + instance.send_emails = validated_data.get('send_emails', instance.send_emails) instance.save() return instance diff --git a/kypo/sandbox_service_project/settings.py b/kypo/sandbox_service_project/settings.py index ffca229ddd1fa6d6b50c3049d21ac248df3ca794..1ec22700b2bcd7141d2c891a2d67f71faa51deae 100644 --- a/kypo/sandbox_service_project/settings.py +++ b/kypo/sandbox_service_project/settings.py @@ -180,7 +180,7 @@ if KYPO_SERVICE_CONFIG.authentication.authenticated_rest_api: REST_FRAMEWORK.update({ 'DEFAULT_PERMISSION_CLASSES': ( 'kypo.sandbox_common_lib.permissions.ModelPermissions', - 'kypo.sandbox_common_lib.permissions.IsAuthenticated', + 'rest_framework.permissions.IsAuthenticated', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( # For testing purposes, uncomment BasicAuthentication.