diff --git a/backend/server/main/settings.py b/backend/server/main/settings.py index fa2ac62..35020b8 100644 --- a/backend/server/main/settings.py +++ b/backend/server/main/settings.py @@ -161,6 +161,8 @@ REST_AUTH = { 'PASSWORD_RESET_SERIALIZER': 'users.serializers.MyPasswordResetSerializer' } +DISABLE_REGISTRATION = getenv('DISABLE_REGISTRATION', 'False') == 'True' + STORAGES = { "staticfiles": { "BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage", diff --git a/backend/server/users/serializers.py b/backend/server/users/serializers.py index 6be95d6..d870d03 100644 --- a/backend/server/users/serializers.py +++ b/backend/server/users/serializers.py @@ -4,6 +4,7 @@ from django.contrib.auth import get_user_model from adventures.models import Adventure from users.forms import CustomAllAuthPasswordResetForm from dj_rest_auth.serializers import PasswordResetSerializer +from rest_framework.exceptions import PermissionDenied User = get_user_model() @@ -78,6 +79,11 @@ class RegisterSerializer(serializers.Serializer): } def save(self, request): + # Check if registration is disabled + if getattr(settings, 'DISABLE_REGISTRATION', False): + raise PermissionDenied("Registration is currently disabled.") + + # If registration is not disabled, proceed with the original logic adapter = get_adapter() user = adapter.new_user(request) self.cleaned_data = self.get_cleaned_data() diff --git a/frontend/src/lib/components/NewAdventure.svelte b/frontend/src/lib/components/NewAdventure.svelte index 48268a4..6801b5a 100644 --- a/frontend/src/lib/components/NewAdventure.svelte +++ b/frontend/src/lib/components/NewAdventure.svelte @@ -92,7 +92,13 @@ function handleKeydown(event: KeyboardEvent) { if (event.key === 'Escape') { - close(); + if (isImageFetcherOpen) { + isImageFetcherOpen = false; + } else if (isPointModalOpen) { + isPointModalOpen = false; + } else { + close(); // Closes the main adventure modal + } } }