make login and logout similar

This commit is contained in:
Oliver Gorwits
2019-03-16 18:47:59 +00:00
parent 857482cd25
commit fc02f2c2dd

View File

@@ -146,13 +146,12 @@ post '/login' => sub {
status('unauthorized'); status('unauthorized');
return to_json { error => 'authentication failed' }; return to_json { error => 'authentication failed' };
} }
else {
vars->{login_failed}++; vars->{login_failed}++;
forward uri_for('/login'), forward uri_for('/login'),
{ login_failed => 1, return_url => param('return_url') }, { login_failed => 1, return_url => param('return_url') },
{ method => 'GET' }; { method => 'GET' };
} }
}
}; };
# ugh, *puke*, but D::P::Swagger has no way to set this with swagger_path # ugh, *puke*, but D::P::Swagger has no way to set this with swagger_path
@@ -168,6 +167,8 @@ swagger_path {
responses => { default => { examples => { 'application/json' => {} } } }, responses => { default => { examples => { 'application/json' => {} } } },
}, },
get '/logout' => sub { get '/logout' => sub {
my $mode = (request_is_api() ? 'API' : 'WebUI');
# clear out API token # clear out API token
my $user = schema('netdisco')->resultset('User') my $user = schema('netdisco')->resultset('User')
->find({ username => session('logged_in_user')}); ->find({ username => session('logged_in_user')});
@@ -180,16 +181,15 @@ get '/logout' => sub {
schema('netdisco')->resultset('UserLog')->create({ schema('netdisco')->resultset('UserLog')->create({
username => session('logged_in_user'), username => session('logged_in_user'),
userip => request->remote_address, userip => request->remote_address,
event => "Logout", event => "Logout ($mode)",
details => '', details => '',
}); });
if (request_is_api()) { if ($mode eq 'API') {
return to_json {}; return to_json {};
} }
else {
redirect uri_for('/inventory')->path; redirect uri_for('/inventory')->path;
}
}; };
true; true;