Added functionality to support user email verification, email = TBD, verification = done.

Signed-off-by: Joar Wandborg <git@wandborg.com>
This commit is contained in:
Joar Wandborg
2011-05-03 19:49:39 +02:00
parent 3dca2776a6
commit db1a438f3e
4 changed files with 58 additions and 4 deletions

View File

@@ -24,4 +24,6 @@ auth_routes = [
Route('mediagoblin.auth.login', '/login/',
controller='mediagoblin.auth.views:login'),
Route('mediagoblin.auth.logout', '/logout/',
controller='mediagoblin.auth.views:logout')]
controller='mediagoblin.auth.views:logout'),
Route('mediagoblin.auth.verify_email', '/verify_email/',
controller='mediagoblin.auth.views:verify_email')]

View File

@@ -116,3 +116,26 @@ def logout(request):
return exc.HTTPFound(
location=request.urlgen("index"))
def verify_email(request):
import bson.objectid
user = request.db.User.find_one(
{'_id': bson.objectid.ObjectId( unicode( request.GET.get('userid') ) )})
verification_successful = bool
if user and user['verification_key'] == unicode( request.GET.get('token') ):
user['status'] = u'active'
user['email_verified'] = True
verification_successful = True
user.save()
else:
verification_successful = False
template = request.template_env.get_template(
'mediagoblin/auth/verify_email.html')
return Response(
template.render(
{'request': request,
'user': user,
'verification_successful': verification_successful}))