From 20a07e81a2e93bacc5b8d2284846e90da51b5918 Mon Sep 17 00:00:00 2001 From: Peter Weber Date: Wed, 10 Nov 2021 13:25:08 +0100 Subject: [PATCH] email: Fix user welcome. * Closes #684. Co-Authored-by: Peter Weber --- scripts/test | 4 ++- .../templates/users/email/welcome/en.html | 2 +- sonar/modules/users/utils.py | 34 ++++++++++++++----- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/scripts/test b/scripts/test index a158aabe..b33144be 100755 --- a/scripts/test +++ b/scripts/test @@ -31,6 +31,8 @@ fi safety check -i 42194 -i 40459 -i 42050&& \ pydocstyle sonar tests docs && \ isort --check-only --diff "${SCRIPT_PATH}/.." && \ -autoflake -rc --remove-all-unused-imports --ignore-init-module-imports . && \ +autoflake -c -r --remove-all-unused-imports --ignore-init-module-imports . &> /dev/null || { + autoflake --remove-all-unused-imports -r --ignore-init-module-imports . +} && \ sphinx-build -qnNW docs docs/_build/html && \ pytest diff --git a/sonar/modules/users/templates/users/email/welcome/en.html b/sonar/modules/users/templates/users/email/welcome/en.html index 28a24cee..0a03d3b3 100644 --- a/sonar/modules/users/templates/users/email/welcome/en.html +++ b/sonar/modules/users/templates/users/email/welcome/en.html @@ -1,5 +1,5 @@

Dear {{ user.first_name }},

-

An account has been created for you on SONAR, the Insitutional repository of {{ user.organisation.name }}.

+

An account has been created for you on {{ platform_name }}.

To access it, please reset your password.

Your login e-mail: {{ user.email }}

{% if user.is_submitter %} diff --git a/sonar/modules/users/utils.py b/sonar/modules/users/utils.py index bca748fc..3ac7c78b 100644 --- a/sonar/modules/users/utils.py +++ b/sonar/modules/users/utils.py @@ -17,6 +17,8 @@ """Utils functions for user module.""" +import markdown +from bs4 import BeautifulSoup from flask_babelex import _ from flask_security import url_for_security from flask_security.recoverable import generate_reset_password_token @@ -31,14 +33,28 @@ def send_welcome_email(user_record, user): :param user: User account. """ user_record = user_record.replace_refs() + code = user_record['organisation'].get('code', '') + plain_platform_name = 'SONAR' + platform_name = user_record['organisation'].get('platformName') + if platform_name: + html = markdown.markdown(platform_name) + plain_platform_name = ''.join( + BeautifulSoup(html).findAll(text=True)).replace('\n', ' - ') token = generate_reset_password_token(user) - reset_link = url_for_security('reset_password', - token=token, - _external=True) - - send_email([user_record['email']], _('Welcome to SONAR'), - 'users/email/welcome', { - 'user': user_record, - 'reset_link': reset_link - }) + reset_link = url_for_security( + 'reset_password', + token=token, + next=f'/{code}', + _external=True + ) + + send_email( + [user_record['email']], + f'{_("Welcome to")} {plain_platform_name}', + 'users/email/welcome', { + 'user': user_record, + 'reset_link': reset_link, + 'platform_name': plain_platform_name + } + )