Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Silbe <sascha-pgp@silbe.org>2011-02-06 21:39:09 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2011-02-06 21:39:09 (GMT)
commitdf258073359adfb3f70645ab692505ca56e215a0 (patch)
tree891ba64b149daa59d115da9f8ae484442cf74e84
parentd524d2b41cea9003f361a3d3d3d62f5e6c66e015 (diff)
factor out error message into _show_error()
-rw-r--r--application.py40
1 files changed, 17 insertions, 23 deletions
diff --git a/application.py b/application.py
index 7bbd0cd..628113d 100644
--- a/application.py
+++ b/application.py
@@ -261,9 +261,7 @@ class Application(object):
try:
id_request = self._openid.decodeRequest(request.form)
except openid.server.server.ProtocolError, exception:
- template = self._get_template('error', request)
- template.message = str(why)
- return Response(str(template), status=400)
+ return self._show_error(request, str(exception))
if id_request is None:
return Response('This is an OpenID endpoint.',
@@ -308,14 +306,12 @@ class Application(object):
def register_user(self, request):
user, key = self._check_user(request)
if key is None:
- template = self._get_template('error', request)
- template.message = 'Client certificate was not presented.'
- return Response(str(template), status=400)
+ return self._show_error(request,
+ 'Client certificate was not presented.')
if user is not None:
template = self._get_template('error', request)
- template.message = 'You are already registered.'
- return Response(str(template), status=400)
+ return self._show_error(request, 'You are already registered.')
if self._user_db.find_user_by_id(request.form['user_id']):
template = self._get_template('register_fail_duplicate_user_id',
@@ -336,14 +332,11 @@ class Application(object):
def add_key(self, request):
user, key = self._check_user(request)
if key is None:
- template = self._get_template('error', request)
- template.message = 'Client certificate was not presented.'
- return Response(str(template), status=400)
+ return self._show_error(request,
+ 'Client certificate was not presented.')
if user is not None:
- template = self._get_template('error', request)
- template.message = 'You are already registered.'
- return Response(str(template), status=400)
+ return self._show_error(request, 'You are already registered.')
user = self._user_db.find_user_by_id(request.form['user_id'])
if not user:
@@ -362,9 +355,8 @@ class Application(object):
def confirm_key(self, request):
user, key = self._check_user(request)
if user is None:
- template = self._get_template('error', request)
- template.message = 'You are not registered.'
- return Response(str(template), status=403)
+ return self._show_error(request, 'You are not registered.',
+ status=403)
key_pem = request.form['key_pem'].strip().replace('\r', '')
confirmed_key = None
@@ -387,9 +379,7 @@ class Application(object):
return redirect('%s/id/%s' % (self._base_url, user.user_id))
if not 'accept' in request.form:
- template = self._get_template('error', request)
- template.message = 'No action specified.'
- return Response(str(template), status=400)
+ return self._show_error(request, 'No action specified.')
updated_key = Key(confirmed_key.pem, True)
self._user_db.update_key(updated_key)
@@ -502,9 +492,8 @@ class Application(object):
try:
encoded_response = self._openid.encodeResponse(id_response)
except openid.server.server.EncodingError, exception:
- template = self._get_template('error', request)
- template.message = exception.response.encodeToKVForm()
- return Response(str(template), status=400)
+ return self._show_error(request,
+ exception.response.encodeToKVForm())
return Response(encoded_response.body,
headers=encoded_response.headers,
@@ -544,6 +533,11 @@ class Application(object):
return stdout
+ def _show_error(self, request, message, status=400):
+ template = self._get_template('error', request)
+ template.message = message
+ return Response(str(template), mimetype='text/html', status=status)
+
def __call__(self, environment, start_response):
_LOCAL.application = self
request = Request(environment)