diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-12-01 18:23:54 +0000 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2016-12-16 10:15:00 +0000 |
commit | 020769f403ef4cf1880bd061b6db6b4f4028d3e4 (patch) | |
tree | 6db18df5d7e3a4743c34802bd441946187d7e19c /perllib/FixMyStreet/App/Controller/Root.pm | |
parent | b8aa0d6da9009dc3182093165df9b1a4c6d7d164 (diff) |
Return 400/500 for some client/server errors.
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Root.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Root.pm | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Root.pm b/perllib/FixMyStreet/App/Controller/Root.pm index 3d4c6a1ba..1df249999 100644 --- a/perllib/FixMyStreet/App/Controller/Root.pm +++ b/perllib/FixMyStreet/App/Controller/Root.pm @@ -103,9 +103,24 @@ sub page_error_410_gone : Private { sub page_error_403_access_denied : Private { my ( $self, $c, $error_msg ) = @_; + $c->detach('page_error', [ $error_msg || _("Sorry, you don't have permission to do that."), 403 ]); +} + +sub page_error_400_bad_request : Private { + my ( $self, $c, $error_msg ) = @_; + $c->detach('page_error', [ $error_msg, 400 ]); +} + +sub page_error_500_internal_error : Private { + my ( $self, $c, $error_msg ) = @_; + $c->detach('page_error', [ $error_msg, 500 ]); +} + +sub page_error : Private { + my ($self, $c, $error_msg, $code) = @_; $c->stash->{template} = 'errors/generic.html'; - $c->stash->{message} = $error_msg || _("Sorry, you don't have permission to do that."); - $c->response->status(403); + $c->stash->{message} = $error_msg || _('Unknown error'); + $c->response->status($code); } =head2 end |