Fix redirect when accessing a deep link when unauthenticated
This commit is contained in:
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
* [#84] No longer use dns as a key into devices; cope with dupe dns (LT)
|
* [#84] No longer use dns as a key into devices; cope with dupe dns (LT)
|
||||||
* Correct date formatting and logic in IP Inventory report
|
* Correct date formatting and logic in IP Inventory report
|
||||||
|
* Fix redirect when accessing a deep link when unauthenticated
|
||||||
|
|
||||||
2.022000 - 2014-01-26
|
2.022000 - 2014-01-26
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ use Dancer::Plugin::DBIC;
|
|||||||
use Dancer::Plugin::Auth::Extensible;
|
use Dancer::Plugin::Auth::Extensible;
|
||||||
|
|
||||||
hook 'before' => sub {
|
hook 'before' => sub {
|
||||||
params->{return_url} ||= uri_for('/inventory');
|
params->{return_url} ||= ((request->path ne uri_for('/')->path)
|
||||||
|
? request->path : uri_for('/inventory'));
|
||||||
|
|
||||||
if (! session('logged_in_user') && request->path ne uri_for('/login')->path) {
|
if (! session('logged_in_user') && request->path ne uri_for('/login')->path) {
|
||||||
if (setting('trust_x_remote_user') and scalar request->header('X-REMOTE_USER')) {
|
if (setting('trust_x_remote_user') and scalar request->header('X-REMOTE_USER')) {
|
||||||
@@ -28,7 +29,7 @@ hook 'before' => sub {
|
|||||||
};
|
};
|
||||||
|
|
||||||
get qr{^/(?:login(?:/denied)?)?} => sub {
|
get qr{^/(?:login(?:/denied)?)?} => sub {
|
||||||
template 'index';
|
template 'index', { return_url => params->{return_url} };
|
||||||
};
|
};
|
||||||
|
|
||||||
# override default login_handler so we can log access in the database
|
# override default login_handler so we can log access in the database
|
||||||
@@ -50,7 +51,7 @@ post '/login' => sub {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return if request->is_ajax;
|
return if request->is_ajax;
|
||||||
redirect params->{return_url} || uri_for('/');
|
redirect params->{return_url};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
session->destroy;
|
session->destroy;
|
||||||
@@ -67,7 +68,9 @@ post '/login' => sub {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
vars->{login_failed}++;
|
vars->{login_failed}++;
|
||||||
forward uri_for('/login'), { login_failed => 1 }, { method => 'GET' };
|
forward uri_for('/login'),
|
||||||
|
{ login_failed => 1, return_url => params->{return_url} },
|
||||||
|
{ method => 'GET' };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
<input placeholder="Password" class="span2" name="password" type="password"/>
|
<input placeholder="Password" class="span2" name="password" type="password"/>
|
||||||
<button type="submit" class="btn btn-info">Log In</button>
|
<button type="submit" class="btn btn-info">Log In</button>
|
||||||
</div>
|
</div>
|
||||||
[% IF vars.return_url %]
|
[% IF params.return_url %]
|
||||||
<input type="hidden" name="path" value="[% vars.return_url | html_entity %]"/>
|
<input type="hidden" name="return_url" value="[% params.return_url | html_entity %]"/>
|
||||||
[% END %]
|
[% END %]
|
||||||
</form>
|
</form>
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
|
|||||||
Reference in New Issue
Block a user