diff options
author | Sascha 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) |
commit | df258073359adfb3f70645ab692505ca56e215a0 (patch) | |
tree | 891ba64b149daa59d115da9f8ae484442cf74e84 | |
parent | d524d2b41cea9003f361a3d3d3d62f5e6c66e015 (diff) |
factor out error message into _show_error()
-rw-r--r-- | application.py | 40 |
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) |