#31 API Token mail
* sends an email to the support address if a new token has been generated
This commit is contained in:
parent
b13e67e061
commit
b86202ba98
@ -213,6 +213,7 @@ EMAIL_FILE_PATH = '/tmp/app-messages' # change this to a proper location
|
|||||||
DEFAULT_FROM_EMAIL = "service@ksp.de" # The default email address for the 'from' element
|
DEFAULT_FROM_EMAIL = "service@ksp.de" # The default email address for the 'from' element
|
||||||
EMAIL_HOST = "localhost"
|
EMAIL_HOST = "localhost"
|
||||||
EMAIL_REPLY_TO = "ksp-servicestelle@sgdnord.rlp.de"
|
EMAIL_REPLY_TO = "ksp-servicestelle@sgdnord.rlp.de"
|
||||||
|
SUPPORT_MAIL_RECIPIENT = EMAIL_REPLY_TO
|
||||||
EMAIL_PORT = "25"
|
EMAIL_PORT = "25"
|
||||||
#EMAIL_HOST_USER = ""
|
#EMAIL_HOST_USER = ""
|
||||||
#EMAIL_HOST_PASSWORD = ""
|
#EMAIL_HOST_PASSWORD = ""
|
||||||
|
@ -11,7 +11,7 @@ from django.core.mail import send_mail
|
|||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
from konova.sub_settings.django_settings import DEFAULT_FROM_EMAIL, EMAIL_REPLY_TO
|
from konova.sub_settings.django_settings import DEFAULT_FROM_EMAIL, EMAIL_REPLY_TO, SUPPORT_MAIL_RECIPIENT
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -181,3 +181,24 @@ class Mailer:
|
|||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def send_mail_verify_api_token(self, user):
|
||||||
|
""" Send a mail if a user creates a new token
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user (User): The user, having a new api token
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
|
||||||
|
"""
|
||||||
|
context = {
|
||||||
|
"user": user,
|
||||||
|
"EMAIL_REPLY_TO": EMAIL_REPLY_TO,
|
||||||
|
}
|
||||||
|
msg = render_to_string("email/api/verify_token.html", context)
|
||||||
|
user_mail_address = [SUPPORT_MAIL_RECIPIENT]
|
||||||
|
self.send(
|
||||||
|
user_mail_address,
|
||||||
|
_("Request for new API token"),
|
||||||
|
msg
|
||||||
|
)
|
||||||
|
|
||||||
|
Binary file not shown.
@ -26,7 +26,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2022-01-27 11:35+0100\n"
|
"POT-Creation-Date: 2022-01-27 11:44+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -1804,6 +1804,10 @@ msgstr "{} - Freigegebene Daten gelöscht"
|
|||||||
msgid "{} - Shared data checked"
|
msgid "{} - Shared data checked"
|
||||||
msgstr "{} - Freigegebene Daten geprüft"
|
msgstr "{} - Freigegebene Daten geprüft"
|
||||||
|
|
||||||
|
#: konova/utils/mailer.py:201 templates/email/api/verify_token.html:4
|
||||||
|
msgid "Request for new API token"
|
||||||
|
msgstr "Anfrage für neuen API Token"
|
||||||
|
|
||||||
#: konova/utils/message_templates.py:11
|
#: konova/utils/message_templates.py:11
|
||||||
msgid "There was an error on this form."
|
msgid "There was an error on this form."
|
||||||
msgstr "Es gab einen Fehler im Formular."
|
msgstr "Es gab einen Fehler im Formular."
|
||||||
@ -1938,6 +1942,32 @@ msgstr ""
|
|||||||
msgid "Something happened. We are working on it!"
|
msgid "Something happened. We are working on it!"
|
||||||
msgstr "Irgendetwas ist passiert. Wir arbeiten daran!"
|
msgstr "Irgendetwas ist passiert. Wir arbeiten daran!"
|
||||||
|
|
||||||
|
#: templates/email/api/verify_token.html:7
|
||||||
|
msgid "Hello support"
|
||||||
|
msgstr "Hallo Support"
|
||||||
|
|
||||||
|
#: templates/email/api/verify_token.html:9
|
||||||
|
msgid "you need to verify the API token for user"
|
||||||
|
msgstr "Sie müssen einen API Token für folgenden Nutzer freischalten"
|
||||||
|
|
||||||
|
#: templates/email/api/verify_token.html:13
|
||||||
|
msgid ""
|
||||||
|
"If unsure, please contact the user. The API token can not be used until you "
|
||||||
|
"activated it in the admin backend."
|
||||||
|
msgstr ""
|
||||||
|
"Falls Sie sich unsicher sind, kontaktieren Sie den Nutzer vorher. Der API Token kann so lange nicht verwendet werden, "
|
||||||
|
"wie er noch nicht von Ihnen im Admin Backend aktiviert worden ist."
|
||||||
|
|
||||||
|
#: templates/email/api/verify_token.html:16
|
||||||
|
#: templates/email/checking/shared_data_checked.html:17
|
||||||
|
#: templates/email/deleting/shared_data_deleted.html:17
|
||||||
|
#: templates/email/recording/shared_data_recorded.html:17
|
||||||
|
#: templates/email/recording/shared_data_unrecorded.html:17
|
||||||
|
#: templates/email/sharing/shared_access_given.html:18
|
||||||
|
#: templates/email/sharing/shared_access_removed.html:18
|
||||||
|
msgid "Best regards"
|
||||||
|
msgstr "Beste Grüße"
|
||||||
|
|
||||||
#: templates/email/checking/shared_data_checked.html:4
|
#: templates/email/checking/shared_data_checked.html:4
|
||||||
msgid "Shared data checked"
|
msgid "Shared data checked"
|
||||||
msgstr "Freigegebene Daten geprüft"
|
msgstr "Freigegebene Daten geprüft"
|
||||||
@ -1963,15 +1993,6 @@ msgstr ""
|
|||||||
"Das bedeutet, dass die zuständige Zulassungsbehörde die Korrektheit des "
|
"Das bedeutet, dass die zuständige Zulassungsbehörde die Korrektheit des "
|
||||||
"Datensatzes soeben bestätigt hat."
|
"Datensatzes soeben bestätigt hat."
|
||||||
|
|
||||||
#: templates/email/checking/shared_data_checked.html:17
|
|
||||||
#: templates/email/deleting/shared_data_deleted.html:17
|
|
||||||
#: templates/email/recording/shared_data_recorded.html:17
|
|
||||||
#: templates/email/recording/shared_data_unrecorded.html:17
|
|
||||||
#: templates/email/sharing/shared_access_given.html:18
|
|
||||||
#: templates/email/sharing/shared_access_removed.html:18
|
|
||||||
msgid "Best regards"
|
|
||||||
msgstr "Beste Grüße"
|
|
||||||
|
|
||||||
#: templates/email/deleting/shared_data_deleted.html:4
|
#: templates/email/deleting/shared_data_deleted.html:4
|
||||||
msgid "Shared data deleted"
|
msgid "Shared data deleted"
|
||||||
msgstr "Freigegebene Daten gelöscht"
|
msgstr "Freigegebene Daten gelöscht"
|
||||||
@ -2315,7 +2336,7 @@ msgstr "Benachrichtigungen"
|
|||||||
|
|
||||||
#: user/templates/user/index.html:58
|
#: user/templates/user/index.html:58
|
||||||
msgid "See or edit your API token"
|
msgid "See or edit your API token"
|
||||||
msgstr ""
|
msgstr "API token einsehen oder neu generieren"
|
||||||
|
|
||||||
#: user/templates/user/index.html:61
|
#: user/templates/user/index.html:61
|
||||||
msgid "API"
|
msgid "API"
|
||||||
@ -2345,23 +2366,23 @@ msgstr "Token noch nicht freigeschaltet"
|
|||||||
msgid "Valid until"
|
msgid "Valid until"
|
||||||
msgstr "Läuft ab am"
|
msgstr "Läuft ab am"
|
||||||
|
|
||||||
#: user/views.py:30
|
#: user/views.py:31
|
||||||
msgid "User settings"
|
msgid "User settings"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#: user/views.py:56
|
#: user/views.py:57
|
||||||
msgid "Notifications edited"
|
msgid "Notifications edited"
|
||||||
msgstr "Benachrichtigungen bearbeitet"
|
msgstr "Benachrichtigungen bearbeitet"
|
||||||
|
|
||||||
#: user/views.py:68
|
#: user/views.py:69
|
||||||
msgid "User notifications"
|
msgid "User notifications"
|
||||||
msgstr "Benachrichtigungen"
|
msgstr "Benachrichtigungen"
|
||||||
|
|
||||||
#: user/views.py:90
|
#: user/views.py:92
|
||||||
msgid "New token generated. Administrators need to validate."
|
msgid "New token generated. Administrators need to validate."
|
||||||
msgstr "Neuer Token generiert. Administratoren sind informiert."
|
msgstr "Neuer Token generiert. Administratoren sind informiert."
|
||||||
|
|
||||||
#: user/views.py:99
|
#: user/views.py:103
|
||||||
msgid "User API token"
|
msgid "User API token"
|
||||||
msgstr "API Nutzer Token"
|
msgstr "API Nutzer Token"
|
||||||
|
|
||||||
|
23
templates/email/api/verify_token.html
Normal file
23
templates/email/api/verify_token.html
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>{% trans 'Request for new API token' %}</h2>
|
||||||
|
<hr>
|
||||||
|
<article>
|
||||||
|
{% trans 'Hello support' %},
|
||||||
|
<br>
|
||||||
|
{% trans 'you need to verify the API token for user' %}:
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<strong>{{user.username}}</strong>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
{% trans 'If unsure, please contact the user. The API token can not be used until you activated it in the admin backend.' %}
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
{% trans 'Best regards' %}
|
||||||
|
<br>
|
||||||
|
KSP
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
|
@ -2,6 +2,7 @@ from django.contrib import messages
|
|||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
|
||||||
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
|
from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER
|
||||||
|
from konova.utils.mailer import Mailer
|
||||||
from konova.utils.message_templates import FORM_INVALID
|
from konova.utils.message_templates import FORM_INVALID
|
||||||
from user.models import User
|
from user.models import User
|
||||||
from django.http import HttpRequest
|
from django.http import HttpRequest
|
||||||
@ -83,18 +84,21 @@ def api_token_view(request: HttpRequest):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
template = "user/token.html"
|
template = "user/token.html"
|
||||||
form = UserAPITokenForm(request.POST or None, instance=request.user)
|
user = request.user
|
||||||
|
form = UserAPITokenForm(request.POST or None, instance=user)
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
token = form.save()
|
token = form.save()
|
||||||
messages.info(request, _("New token generated. Administrators need to validate."))
|
messages.info(request, _("New token generated. Administrators need to validate."))
|
||||||
|
mailer = Mailer()
|
||||||
|
mailer.send_mail_verify_api_token(user)
|
||||||
return redirect("user:api-token")
|
return redirect("user:api-token")
|
||||||
else:
|
else:
|
||||||
messages.error(request, FORM_INVALID, extra_tags="danger")
|
messages.error(request, FORM_INVALID, extra_tags="danger")
|
||||||
elif request.method != "GET":
|
elif request.method != "GET":
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
context = {
|
context = {
|
||||||
"user": request.user,
|
"user": user,
|
||||||
"form": form,
|
"form": form,
|
||||||
TAB_TITLE_IDENTIFIER: _("User API token"),
|
TAB_TITLE_IDENTIFIER: _("User API token"),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user