sub default : Path {
my ( $self, $c ) = @_;
- $c->response->status(404);
+ $c->stash(template => 'default.tt2');
+ $c->response->status(410);
}
sub login : Local {
sub redirect : Private {
my ($self, $c) = @_;
- $c->res->redirect($c->uri_for('/'.$c->flash->{referrer}));
+ $c->res->redirect($c->uri_for('/'.$c->session->{referrer}));
}
sub access_denied : Private {
my ($self, $c, $action) = @_;
$c->stash->{template} = 'access_denied.tt2';
+ $c->res->status(403);
}
sub end : ActionClass('RenderView') {
my ($self, $c) = @_;
- if ($c->res->status == 302){
+ if ($c->res->status >= 300 && $c->res->status <= 400 ){
return;
}
if (scalar @{ $c->error } ){
if ($c->error->[0] =~ m/Can't call method "id" on an undefined value at/){
$c->stash->{template} = 'access_denied.tt2';
+ $c->res->status(403);
$c->clear_errors;
}elsif ($c->error->[0] =~ m/Missing roles: /){
$c->stash->{template} = 'access_denied.tt2';
+ $c->res->status(403);
$c->clear_errors;
}
}
$birthdays->execute;
$c->stash(birthdays => $birthdays->fetchall_arrayref({}));
- if ($c->res->status == 200){
- $c->flash(referrer => $c->req->path);
+ if ($c->res->status == 200 || $c->req->method eq 'GET'){
+ $c->session->{referrer} = $c->req->path;
}
}