Added flask support #70 #75 #71

Merged
edraft merged 107 commits from #70 into 0.3 2022-11-05 13:55:42 +01:00
3 changed files with 18 additions and 10 deletions
Showing only changes of commit 840193d5a8 - Show all commits

View File

@ -17,7 +17,7 @@
"LicenseDescription": "MIT, see LICENSE for more details.",
"Dependencies": [
"cpl-core==2022.10.0.post7",
"cpl-translation==2022.10.0.post1",
"cpl-translation==2022.10.0.post2",
"cpl-query==2022.10.0.post2",
"cpl-discord==2022.10.0.post6",
"Flask==2.2.2",

View File

@ -154,6 +154,9 @@
}
},
"api": {
"mail": {
"automatic_mail": "\n\nDies ist eine automatische E-Mail.\nGesendet von {}-{}@{}"
},
"api": {
"test_mail": {
"subject": "Krümmelmonster Web Interface Test-Mail",

View File

@ -1,5 +1,6 @@
import hashlib
import re
import textwrap
import uuid
from datetime import datetime, timedelta, timezone
from typing import Optional
@ -138,12 +139,13 @@ class AuthService(AuthServiceABC):
mail = EMail()
mail.add_header('Mime-Version: 1.0')
mail.add_header('Content-Type: text/plain charset=utf-8')
mail.add_header('Content-Type: text/plain; charset=utf-8')
mail.add_header('Content-Transfer-Encoding: quoted-printable')
mail.add_receiver(user.email)
mail.add_receiver(str(user.email))
mail.subject = self._t.transform('api.auth.confirmation.subject').format(user.first_name, user.last_name)
mail.body = self._t.transform('api.auth.confirmation.message').format(url, user.confirmation_id)
mail.body += f'\n\nDies ist eine automatische E-Mail.\nGesendet von {self._environment.application_name}-{self._environment.environment_name}@{self._environment.host_name}'
mail.body = textwrap.dedent(f"""{self._t.transform('api.auth.confirmation.message').format(url, user.forgot_password_id)}
{self._t.transform('api.mail.automatic_mail').format(self._environment.application_name, self._environment.environment_name, self._environment.host_name)}
""")
self._mailer.send_mail(mail)
def _send_forgot_password_id_to_user(self, user: AuthUser):
@ -151,14 +153,17 @@ class AuthService(AuthServiceABC):
if not url.endswith('/'):
url = f'{url}/'
# todo send mail in background task
# todo create cpl ticket to send mails async
mail = EMail()
mail.add_header('Mime-Version: 1.0')
mail.add_header('Content-Type: text/plain charset=utf-8')
mail.add_header('Content-Type: text/plain; charset=utf-8')
mail.add_header('Content-Transfer-Encoding: quoted-printable')
mail.add_receiver(user.email)
mail.subject = str(self._t.transform('api.auth.forgot_password.subject').format(user.first_name, user.last_name))
mail.body = str(self._t.transform('api.auth.forgot_password.message').format(url, user.forgot_password_id))
mail.body += f'\n\nDies ist eine automatische E-Mail.\nGesendet von {self._environment.application_name}-{self._environment.environment_name}@{self._environment.host_name}'
mail.add_receiver(str(user.email))
mail.subject = self._t.transform('api.auth.forgot_password.subject').format(user.first_name, user.last_name)
mail.body = textwrap.dedent(f"""{self._t.transform('api.auth.forgot_password.message').format(url, user.forgot_password_id)}
{self._t.transform('api.mail.automatic_mail').format(self._environment.application_name, self._environment.environment_name, self._environment.host_name)}
""")
self._mailer.send_mail(mail)
async def get_all_auth_users_async(self) -> List[AuthUserDTO]: