[#77] Log user access
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
[ENHANCEMENTS]
|
||||
|
||||
* [#69] Add search by layers to device search
|
||||
* [#77] Log user access
|
||||
|
||||
|
||||
2.022000 - 2014-01-26
|
||||
|
||||
@@ -94,6 +94,57 @@ get qr{^/(?:login(?:/denied)?)?} => sub {
|
||||
template 'index';
|
||||
};
|
||||
|
||||
# Override default login_handler so that we can log access in the
|
||||
# database
|
||||
post '/login' => sub {
|
||||
my ($success, $realm) = authenticate_user(
|
||||
params->{username}, params->{password}
|
||||
);
|
||||
if ($success) {
|
||||
session logged_in_user => params->{username};
|
||||
session logged_in_user_realm => $realm;
|
||||
|
||||
schema('netdisco')->resultset('UserLog')->create({
|
||||
username => session('logged_in_user'),
|
||||
userip => request->remote_address,
|
||||
event => "Login",
|
||||
details => params->{return_url},
|
||||
});
|
||||
|
||||
redirect params->{return_url} || uri_for('/');
|
||||
} else {
|
||||
|
||||
schema('netdisco')->resultset('UserLog')->create({
|
||||
username => params->{username},
|
||||
userip => request->remote_address,
|
||||
event => "Login Failure",
|
||||
details => params->{return_url},
|
||||
});
|
||||
|
||||
vars->{login_failed}++;
|
||||
forward uri_for('/login'), { login_failed => 1 }, { method => 'GET' };
|
||||
}
|
||||
};
|
||||
|
||||
# Since we override the default login_handler, logout has to be handled as
|
||||
# well
|
||||
any ['get','post'] => '/logout' => sub {
|
||||
|
||||
schema('netdisco')->resultset('UserLog')->create({
|
||||
username => session('logged_in_user'),
|
||||
userip => request->remote_address,
|
||||
event => "Logout",
|
||||
details => '',
|
||||
});
|
||||
|
||||
session->destroy;
|
||||
if (params->{return_url}) {
|
||||
redirect params->{return_url};
|
||||
} else {
|
||||
return "OK, logged out successfully.";
|
||||
}
|
||||
};
|
||||
|
||||
any qr{.*} => sub {
|
||||
var('notfound' => true);
|
||||
status 'not_found';
|
||||
|
||||
@@ -192,6 +192,7 @@ plugins:
|
||||
Auth::Extensible:
|
||||
no_api_change_warning: true
|
||||
no_default_pages: true
|
||||
no_login_handler: true
|
||||
realms:
|
||||
users:
|
||||
provider: 'App::Netdisco::Web::Auth::Provider::DBIC'
|
||||
|
||||
Reference in New Issue
Block a user