From faa5a67b30bcedaf67223d1905036bff806cbf45 Mon Sep 17 00:00:00 2001 From: Marian Sigler Date: Sat, 29 Sep 2012 15:11:58 +0200 Subject: change create_account script to by default send an email --- contrib/create_account.py | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/contrib/create_account.py b/contrib/create_account.py index cb4392a..17e4646 100755 --- a/contrib/create_account.py +++ b/contrib/create_account.py @@ -6,8 +6,8 @@ sys.path.append(dirname(dirname(abspath(__file__)))) from account import AccountService, NoSuchUserError from app import app -from flask import g, url_for -from utils import make_confirmation +from flask import g, render_template, url_for +from utils import make_confirmation, send_mail """ Create an account. @@ -18,10 +18,11 @@ blacklist is not checked. The user can click the link and enter a password to finish account creation. Usage: - $0 username email + $0 username mail Send an activation mail. + $0 -p username mail Only print the link. """ -def main(username, mail): +def main(username, mail, print_only=False): service = AccountService(app.config['LDAP_HOST'], app.config['LDAP_BASE_DN'], app.config['LDAP_ADMIN_USER'], app.config['LDAP_ADMIN_PASS'], app.all_services) @@ -43,7 +44,18 @@ def main(username, mail): confirm_token = make_confirmation('register', (username, mail)) confirm_link = url_for('register_complete', token=confirm_token, _external=True) - print confirm_link + if print_only: + print confirm_link + return + + body = render_template('mail/register.txt', username=username, + mail=mail, link=confirm_link) + + send_mail(mail, u'E-Mail-Adresse bestätigen', body, + sender=app.config.get('MAIL_CONFIRM_SENDER')) + + print 'Mail versandt.' + class CreationError(ValueError): @@ -51,11 +63,18 @@ class CreationError(ValueError): if __name__ == '__main__': + try: + sys.argv.remove('-p') + except ValueError: + print_only = False + else: + print_only = True + if len(sys.argv) == 3: #XXX: I have the strong feeling that could be done better try: with app.test_request_context(base_url='http://%s/' % (app.config['SERVER_NAME'] or 'localhost')): - main(*sys.argv[1:]) + main(sys.argv[1], sys.argv[2], print_only=print_only) except CreationError, e: print 'Error:', e else: -- cgit v1.2.3-1-g7c22