summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-03-10 19:32:45 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-03-10 19:32:45 +0100
commit5970a5a350890340821a5418f3aa4607e05f49cb (patch)
treedb97fe2421a3fd1d354481ef8d6e5224094486ca
parentc27c108f4862f5dcbf42cf8f403807d7cbb009f1 (diff)
redirect users after login to protected page
-rwxr-xr-xindex.pl4
-rw-r--r--templates/login.html.ep3
2 files changed, 5 insertions, 2 deletions
diff --git a/index.pl b/index.pl
index b442126..52ec80f 100755
--- a/index.pl
+++ b/index.pl
@@ -920,7 +920,7 @@ post '/login' => sub {
}
else {
if ( $self->authenticate( $user, $password ) ) {
- $self->redirect_to('/');
+ $self->redirect_to( $self->req->param('redirect_to') // '/' );
}
else {
my $data = $self->get_user_password($user);
@@ -1173,7 +1173,7 @@ under sub {
if ( $self->is_user_authenticated ) {
return 1;
}
- $self->render('login');
+ $self->render( 'login', redirect_to => $self->req->url );
return undef;
};
diff --git a/templates/login.html.ep b/templates/login.html.ep
index fc8bbb8..4c5696d 100644
--- a/templates/login.html.ep
+++ b/templates/login.html.ep
@@ -76,6 +76,9 @@
<div class="row">
%= form_for '/login' => (class => 'col s12', method => 'POST') => begin
%= csrf_field
+ % if (stash('redirect_to')) {
+ %= hidden_field 'redirect_to' => $redirect_to
+ % }
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">account_circle</i>