From f669d8ea3839da370e23da665219bec487d50b66 Mon Sep 17 00:00:00 2001 From: Kai <sistason@sistason.de> Date: Fri, 20 Nov 2020 12:56:24 +0100 Subject: [PATCH] Fixes #15 by adding a new-optional attribute to send_passwordreset, for using a different mail template --- uffd/selfservice/templates/newuser.mail.txt | 10 ++++++++++ uffd/selfservice/views.py | 10 +++++++--- uffd/user/views_user.py | 4 ++-- 3 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 uffd/selfservice/templates/newuser.mail.txt diff --git a/uffd/selfservice/templates/newuser.mail.txt b/uffd/selfservice/templates/newuser.mail.txt new file mode 100644 index 00000000..afae8181 --- /dev/null +++ b/uffd/selfservice/templates/newuser.mail.txt @@ -0,0 +1,10 @@ +Hi {{ user.displayname }}, + +welcome to the CCCV infrastructure. +An account was created for you, visit this url to set your password: {{ url_for('selfservice.token_password', token=token, _external=True) }} +**Please note this link is only valid for 48h** + +If you have no idea why someone would create an account for you to be used for the next CCC event organization, please contact it@cccv.de. + +Kind regards, +uffd diff --git a/uffd/selfservice/views.py b/uffd/selfservice/views.py index fae2c27d..53076679 100644 --- a/uffd/selfservice/views.py +++ b/uffd/selfservice/views.py @@ -142,7 +142,7 @@ def send_mail_verification(loginname, newmail): msg['Subject'] = 'Mail verification' send_mail(newmail, msg) -def send_passwordreset(loginname): +def send_passwordreset(loginname, new=False): session = db.session expired_tokens = PasswordToken.query.filter(PasswordToken.created < (datetime.datetime.now() - datetime.timedelta(days=2))).all() duplicate_tokens = PasswordToken.query.filter(PasswordToken.loginname == loginname).all() @@ -156,8 +156,12 @@ def send_passwordreset(loginname): user = User.from_ldap_dn(loginname_to_dn(loginname)) msg = EmailMessage() - msg.set_content(render_template('passwordreset.mail.txt', user=user, token=token.token)) - msg['Subject'] = 'Password reset' + if new: + msg.set_content(render_template('newuser.mail.txt', user=user, token=token.token)) + msg['Subject'] = 'Welcome to the CCCV infrastructure' + else: + msg.set_content(render_template('passwordreset.mail.txt', user=user, token=token.token)) + msg['Subject'] = 'Password reset' send_mail(user.mail, msg) def send_mail(to_address, msg): diff --git a/uffd/user/views_user.py b/uffd/user/views_user.py index 4237b487..14fcb690 100644 --- a/uffd/user/views_user.py +++ b/uffd/user/views_user.py @@ -88,7 +88,7 @@ def update(uid=False): if user.to_ldap(new=is_newuser): if is_newuser: - send_passwordreset(user.loginname) + send_passwordreset(user.loginname, new=True) flash('User created. We sent the user a password reset link by mail') else: flash('User updated') @@ -158,7 +158,7 @@ def csvimport(): result = newuser.to_ldap(new=True) print(result) if result: - send_passwordreset(newuser.loginname) + send_passwordreset(newuser.loginname, new=True) usergroups = set() for role in Role.get_for_user(newuser).all(): -- GitLab