def get(self, request): if not config.debug: return error_forbidden('can only be accessed in debug mode') log.debug('{0}: {1}'.format(request, request.match_info)) email = request.match_info['email'] try: user = User.select().where(User.email == email).get() except User.DoesNotExist as exc: return self.error_unauthorized('Invalid email validation URL') reply = dict( success=True, user=dict( join_date=str(user.join_date), name=user.name, email=user.email, password=user.password, email_validated=user.email_validated, email_validation_secret=user.email_validation_secret, recovery_requested=user.recovery_requested, recovery_date=str(user.recovery_date), recovery_secret=user.recovery_secret, ), ) return web.Response(body=json.dumps(reply).encode('utf-8'))
def post(self, request): data = yield from request.read() log.debug('{0}: {1}'.format(request, data)) data = yield from request.json() secret = data['secret'] try: user = User.select().where(User.email_validation_secret == secret).get() except User.DoesNotExist as exc: return self.error_unauthorized('Invalid email validation URL') else: user.email_validated = True user.save() reply = dict( success=True, name=user.name, email=user.email, ) return web.Response(body=json.dumps(reply).encode('utf-8'))