diff options
author | Aleksandar Micovic <aleks.micovic@gmail.com> | 2011-06-02 21:07:37 -0400 |
---|---|---|
committer | Aleksandar Micovic <aleks.micovic@gmail.com> | 2011-06-02 21:07:37 -0400 |
commit | 02d80437d1cdda5b2a8596d024aafa8b286cb360 (patch) | |
tree | 840069ed3f4dc8a3c1e030fff1e7b76b752f17a2 /mediagoblin/auth/lib.py | |
parent | 04cb99b22316a9d7d93e30e4748d74d51fa63c85 (diff) | |
download | mediagoblin-02d80437d1cdda5b2a8596d024aafa8b286cb360.tar.lz mediagoblin-02d80437d1cdda5b2a8596d024aafa8b286cb360.tar.xz mediagoblin-02d80437d1cdda5b2a8596d024aafa8b286cb360.zip |
Refactored the sending of verification emails.
Diffstat (limited to 'mediagoblin/auth/lib.py')
-rw-r--r-- | mediagoblin/auth/lib.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/mediagoblin/auth/lib.py b/mediagoblin/auth/lib.py index 7cf021bc..dc5f9941 100644 --- a/mediagoblin/auth/lib.py +++ b/mediagoblin/auth/lib.py @@ -19,6 +19,9 @@ import random import bcrypt +from mediagoblin.util import send_email +from mediagoblin import globals as mgoblin_globals + def bcrypt_check_password(raw_pass, stored_hash, extra_salt=None): """ @@ -84,3 +87,34 @@ def fake_login_attempt(): randplus_hashed_pass = bcrypt.hashpw(hashed_pass, rand_salt) randplus_stored_hash == randplus_hashed_pass + + +def send_verification_email(user, request): + """ + Send the verification email to users to activate their accounts. + + Args: + - user: a user object + - request: the request + """ + + email_template = request.template_env.get_template( + 'mediagoblin/auth/verification_email.txt') + + # TODO: There is no error handling in place + send_email( + mgoblin_globals.email_sender_address, + [user['email']], + # TODO + # Due to the distributed nature of GNU MediaGoblin, we should + # find a way to send some additional information about the + # specific GNU MediaGoblin instance in the subject line. For + # example "GNU MediaGoblin @ Wandborg - [...]". + 'GNU MediaGoblin - Verify your email!', + email_template.render( + username=user['username'], + verification_url='http://{host}{uri}?userid={userid}&token={verification_key}'.format( + host=request.host, + uri=request.urlgen('mediagoblin.auth.verify_email'), + userid=unicode(user['_id']), + verification_key=user['verification_key']))) |