From e6b6cab5cd5dbe9ca1326c4614a096a41341deda Mon Sep 17 00:00:00 2001 From: Richard Glosner <xglosner@fi.muni.cz> Date: Mon, 12 Aug 2024 11:36:31 +0200 Subject: [PATCH] feat: add INJECT_EMAIL_TIMEOUT for SMTP communication No API changes Closes #256 --- INSTALLATION.md | 1 + ttxbackend/settings.py | 6 ++---- user/views.py | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/INSTALLATION.md b/INSTALLATION.md index cfc75746..d7a1cda2 100644 --- a/INSTALLATION.md +++ b/INSTALLATION.md @@ -14,6 +14,7 @@ Boolean type variables use consider `true` and `yes` as truthy, and `false` and - `INJECT_LOGS`: _string, default=backend-logs.log_ - Path to a file where to save logs. - `INJECT_DOMAIN`: _string, default=""_ - Domain where yours instance of the INJECT is available. - `INJECT_SECRET_KEY`: _string_ - Used to provide cryptographic signing. Must be at least 50 long characters string. +- `INJECT_EMAIL_TIMEOUT`: _int, default=10_ - Specifies a timeout in seconds for blocking operations like the connection attempt to SMTP. diff --git a/ttxbackend/settings.py b/ttxbackend/settings.py index 59381aaa..42960646 100644 --- a/ttxbackend/settings.py +++ b/ttxbackend/settings.py @@ -241,13 +241,11 @@ EMAIL_BACKEND = ( else "django.core.mail.backends.smtp.EmailBackend" ) EMAIL_HOST = os.environ.get("INJECT_EMAIL_HOST", "") -if email_port := os.environ.get("INJECT_EMAIL_PORT"): - EMAIL_PORT = int(email_port) -else: - EMAIL_PORT = 25 +EMAIL_PORT = int(os.environ.get("INJECT_EMAIL_PORT", 25)) EMAIL_HOST_USER = os.environ.get("INJECT_EMAIL_HOST_USER", "") EMAIL_HOST_PASSWORD = os.environ.get("INJECT_EMAIL_HOST_PASSWORD", "") EMAIL_SENDER_ADDRESS = os.environ.get("INJECT_EMAIL_SENDER_ADDRESS", "") +EMAIL_TIMEOUT = int(os.environ.get("INJECT_EMAIL_TIMEOUT", 10)) DOMAIN = os.environ.get("INJECT_DOMAIN", "") if protocol := os.environ.get("INJECT_EMAIL_PROTOCOL"): diff --git a/user/views.py b/user/views.py index 3a5c1b07..0e597ecf 100644 --- a/user/views.py +++ b/user/views.py @@ -31,5 +31,5 @@ class UploadUserFile(APIView): logger.info(log_user_msg(request, request.user) + "uploaded new users") return UserUploader.validate_and_upload( uploaded_file=uploaded_file, - admin_initiator=request.user.is_superuser, + admin_initiator=request.user.group == User.AuthGroup.ADMIN, ) -- GitLab