[#56] Support API call to /login
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
* [#74] Device Name / DNS mismatches report
|
||||
* [#71] Node search by date (but not time)
|
||||
* [#73] NetBIOS Poller - nbtstat and nbtwalk
|
||||
* [#56] Support API call to /login
|
||||
|
||||
[ENHANCEMENTS]
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ get qr{^/(?:login(?:/denied)?)?} => sub {
|
||||
|
||||
# override default login_handler so we can log access in the database
|
||||
post '/login' => sub {
|
||||
my $mode = (request->is_ajax ? 'API' : 'Web');
|
||||
my ($success, $realm) = authenticate_user(
|
||||
params->{username}, params->{password}
|
||||
);
|
||||
@@ -44,23 +45,31 @@ post '/login' => sub {
|
||||
schema('netdisco')->resultset('UserLog')->create({
|
||||
username => session('logged_in_user'),
|
||||
userip => request->remote_address,
|
||||
event => "Login",
|
||||
event => "Login ($mode)",
|
||||
details => params->{return_url},
|
||||
});
|
||||
|
||||
return if request->is_ajax;
|
||||
redirect params->{return_url} || uri_for('/');
|
||||
}
|
||||
else {
|
||||
session->destroy;
|
||||
|
||||
schema('netdisco')->resultset('UserLog')->create({
|
||||
username => params->{username},
|
||||
userip => request->remote_address,
|
||||
event => "Login Failure",
|
||||
event => "Login Failure ($mode)",
|
||||
details => params->{return_url},
|
||||
});
|
||||
|
||||
if (request->is_ajax) {
|
||||
status('unauthorized');
|
||||
}
|
||||
else {
|
||||
vars->{login_failed}++;
|
||||
forward uri_for('/login'), { login_failed => 1 }, { method => 'GET' };
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
# we override the default login_handler, so logout has to be handled as well
|
||||
|
||||
@@ -28,9 +28,9 @@ safe_password_store: true
|
||||
# ```````````````````````````````````````````````````````
|
||||
#domain_suffix: '.example.com'
|
||||
|
||||
# uncomment and set to true to globally disable authentication/login,
|
||||
# and also create a user called "guest".
|
||||
# ```````````````````````````````````````````````````````````````````
|
||||
# uncomment and set to true to globally disable authentication/loginr.
|
||||
# create a user called "guest" if you want to assign port/admin rights.
|
||||
# `````````````````````````````````````````````````````````````````````
|
||||
#no_auth: false
|
||||
|
||||
# SNMP community string(s)
|
||||
|
||||
Reference in New Issue
Block a user