# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+import uuid
+
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
return exc.HTTPFound(
location=request.urlgen("index"))
+
def verify_email(request):
"""
Email verification view
validates GET parameters against database and unlocks the user account, if
you are lucky :)
"""
- import bson.objectid
- user = request.db.User.find_one(
- {'_id': bson.objectid.ObjectId(unicode(request.GET.get('userid')))})
+ # If we don't have userid and token parameters, we can't do anything; 404
+ if not request.GET.has_key('userid') or not request.GET.has_key('token'):
+ return exc.HTTPNotFound()
- verification_successful = bool
+ user = request.db.User.find_one(
+ {'_id': ObjectId(unicode(request.GET['userid']))})
- if user and user['verification_key'] == unicode(request.GET.get('token')):
+ if user and user['verification_key'] == unicode(request.GET['token']):
user['status'] = u'active'
user['email_verified'] = True
verification_successful = True
template.render(
{'request': request}))
+
def resend_activation(request):
"""
The reactivation view
Resend the activation email.
"""
-
- request.user.generate_new_verification_key()
+ request.user['verification_key'] = unicode(uuid.uuid4())
+ request.user.save()
# Copied shamelessly from the register view above.
userid=unicode(request.user['_id']),
verification_key=request.user['verification_key'])))
+ return exc.HTTPFound(
+ location=request.urlgen('mediagoblin.auth.resend_verification_success'))
- # TODO: For now, we use the successful registration page until we get a
- # proper messaging system.
+def resend_activation_success(request):
template = request.template_env.get_template(
- 'mediagoblin/auth/register_success.html')
- return exc.HTTPFound(
- location=request.urlgen('mediagoblin.auth.register_success'))
-
+ 'mediagoblin/auth/resent_verification_email.html')
+ return Response(
+ template.render(
+ {'request': request}))