X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/670f76a86aaf642bf1a6b5b37cdc023f8fdfc79c..6f266e929ff3eaefc84c34b46fa452c50eecbcf4:/SL/Dispatcher/AuthHandler/Admin.pm?ds=sidebyside diff --git a/SL/Dispatcher/AuthHandler/Admin.pm b/SL/Dispatcher/AuthHandler/Admin.pm index 7b194ff04..a7b649cf2 100644 --- a/SL/Dispatcher/AuthHandler/Admin.pm +++ b/SL/Dispatcher/AuthHandler/Admin.pm @@ -1,16 +1,24 @@ package SL::Dispatcher::AuthHandler::Admin; use strict; - use parent qw(Rose::Object); +use SL::Layout::Dispatcher; + sub handle { %::myconfig = (); - return if $::auth->authenticate_root($::auth->get_session_value('admin_password')) == $::auth->OK(); + return 1 if $::auth->get_api_token_cookie; + return 1 if $::form->{'{AUTH}admin_password'} && ($::auth->authenticate_root($::form->{'{AUTH}admin_password'}) == $::auth->OK()); + return 1 if !$::form->{'{AUTH}admin_password'} && ($::auth->authenticate_root($::auth->get_session_value('admin_password')) == $::auth->OK()); + $::request->{layout} = SL::Layout::Dispatcher->new(style => 'admin'); + + $::auth->punish_wrong_login; $::auth->delete_session_value('admin_password'); - SL::Dispatcher::show_error('login/password_error', 'password', is_admin => 1); + SL::Dispatcher::show_error('admin/adminlogin', 'password'); + + return 0; } 1;