Merge remote-tracking branch 'gitorious/master'
This commit is contained in:
commit
2165d464a4
@ -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'])))
|
||||
|
@ -21,8 +21,7 @@ from webob import Response, exc
|
||||
from mediagoblin.db.util import ObjectId
|
||||
from mediagoblin.auth import lib as auth_lib
|
||||
from mediagoblin.auth import forms as auth_forms
|
||||
from mediagoblin.util import send_email
|
||||
from mediagoblin import globals as mgoblin_globals
|
||||
from mediagoblin.auth.lib import send_verification_email
|
||||
|
||||
|
||||
def register(request):
|
||||
@ -52,26 +51,7 @@ def register(request):
|
||||
request.POST['password'])
|
||||
entry.save(validate=True)
|
||||
|
||||
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,
|
||||
[entry['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 email',
|
||||
email_template.render(
|
||||
username=entry['username'],
|
||||
verification_url='http://{host}{uri}?userid={userid}&token={verification_key}'.format(
|
||||
host=request.host,
|
||||
uri=request.urlgen('mediagoblin.auth.verify_email'),
|
||||
userid=unicode(entry['_id']),
|
||||
verification_key=entry['verification_key'])))
|
||||
send_verification_email(entry, request)
|
||||
|
||||
# Redirect to register_success
|
||||
return exc.HTTPFound(
|
||||
@ -158,8 +138,6 @@ def verify_email(request):
|
||||
user = request.db.User.find_one(
|
||||
{'_id': ObjectId(unicode(request.GET['userid']))})
|
||||
|
||||
verification_successful = bool
|
||||
|
||||
if user and user['verification_key'] == unicode(request.GET['token']):
|
||||
user['status'] = u'active'
|
||||
user['email_verified'] = True
|
||||
@ -197,31 +175,11 @@ def resend_activation(request):
|
||||
|
||||
Resend the activation email.
|
||||
"""
|
||||
|
||||
request.user['verification_key'] = unicode(uuid.uuid4())
|
||||
request.user.save()
|
||||
|
||||
# Copied shamelessly from the register view above.
|
||||
|
||||
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,
|
||||
[request.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 email',
|
||||
email_template.render(
|
||||
username=request.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(request.user['_id']),
|
||||
verification_key=request.user['verification_key'])))
|
||||
send_verification_email(request.user, request)
|
||||
|
||||
return exc.HTTPFound(
|
||||
location=request.urlgen('mediagoblin.auth.resend_verification_success'))
|
||||
|
@ -32,7 +32,7 @@
|
||||
<strong>{{ page }}</strong>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<span class=ellipsis>…</span>
|
||||
<span class="ellipsis">…</span>
|
||||
{% endif %}
|
||||
{%- endfor %}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user