sub default : Path {
my ( $self, $c ) = @_;
- $c->response->status(404);
+ $c->stash(template => 'default.tt2');
+ $c->response->status(410);
}
sub login : Local {
$log->execute($c->user->id,$c->req->address
,$country,$c->sessionid,$remember);
- my $ref = $c->req->referer;
- $ref =~ s/^http:/https:/ unless $c->debug;
- $c->res->redirect($ref);
+ $c->forward('redirect');
return;
+ } elsif ($c->req->method eq 'POST'){
+ $c->res->status(400);
}
}
}else{
$c->stash(UID => -4);
}
+}
+sub redirect : Private {
+ my ($self, $c) = @_;
+ $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 >= 300 && $c->res->status <= 400 ){
+ return;
+ }
+
my $dbh = $c ->model;
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->req->method eq 'GET'){
+ $c->session->{referrer} = $c->req->path;
+ }
}
=head1 AUTHOR