X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Flogin.pl;h=117c184cb810794791f26ce06569d0c96e778b57;hb=35c8a113365e28432580272971dd196c34681c0a;hp=d52a69b496b4ddfa74da49b28fa992e8db284f10;hpb=5494f687372570c9d1c5eb5c6aad73767e50820a;p=kivitendo-erp.git diff --git a/bin/mozilla/login.pl b/bin/mozilla/login.pl index d52a69b49..117c184cb 100644 --- a/bin/mozilla/login.pl +++ b/bin/mozilla/login.pl @@ -24,177 +24,50 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1335, USA. ####################################################################### -use DBI; -use SL::Auth; -use SL::User; +use SL::DB::Default; use SL::Form; +use SL::Git; +use DateTime; require "bin/mozilla/common.pl"; require "bin/mozilla/todo.pl"; use strict; -our $cgi; our $form; our $auth; -sub run { - $::lxdebug->enter_sub; - my $session_result = shift; - - $form = $::form; - $auth = $::auth; - - $form->{stylesheet} = "lx-office-erp.css"; - $form->{favicon} = "favicon.ico"; - - if (SL::Auth::SESSION_EXPIRED == $session_result) { - $form->{error_message} = $::locale->text('The session is invalid or has expired.'); - login_screen(); - ::end_of_request(); - } - my $action = $form->{action}; - if (!$action && $auth->{SESSION}->{login}) { - $action = 'login'; - } - if ($action) { - %::myconfig = $auth->read_user($form->{login}) if ($form->{login}); - $::locale = Locale->new($::myconfig{countrycode}) if $::myconfig{countrycode}; - - if (SL::Auth::OK != $auth->authenticate($::myconfig{login}, $form->{password})) { - $form->{error_message} = $::locale->text('Incorrect username or password!'); - login_screen(); - } else { - $auth->store_credentials_in_session(login => $form->{login}, password => $form->{password}); - $auth->create_or_refresh_session(); - delete $form->{password}; - - $form->{titlebar} .= " - $::myconfig{name} - $::myconfig{dbname}"; - call_sub($::locale->findsub($action)); - } - } else { - login_screen(); - } - - $::lxdebug->leave_sub; -} - -sub login_screen { - $main::lxdebug->enter_sub(); - my ($msg) = @_; - - if (-f "css/lx-office-erp.css") { - $form->{stylesheet} = "lx-office-erp.css"; - } - - $form->{msg} = $msg; - $form->header(); - - print $form->parse_html_template('login/login_screen'); - - $main::lxdebug->leave_sub(); -} - -sub login { - $main::lxdebug->enter_sub(); - - unless ($form->{login}) { - login_screen($::locale->text('You did not enter a name!')); - ::end_of_request(); - } - - my $user = new User $form->{login}; - - # if we get an error back, bale out - my $result; - if (($result = $user->login($form)) <= -1) { - if ($result == -3) { - show_error('login/auth_db_needs_update'); - $::auth->destroy_session; - ::end_of_request(); - } - - ::end_of_request() if $result == -2; - login_screen($::locale->text('Incorrect username or password!')); - ::end_of_request(); - } - - my %style_to_script_map = ( 'v3' => 'v3', - 'neu' => 'new', - 'v4' => 'v4', - 'xml' => 'XML', - ); - - my $menu_script = $style_to_script_map{$user->{menustyle}} || ''; - - # made it this far, execute the menu - # standard redirect does not seem to work for this invocation, (infinite loops?) - # do a manual invocation instead -# $form->{callback} = build_std_url("script=menu${menu_script}.pl", 'action=display', "callback=" . $form->escape($form->{callback})); - - $main::auth->set_cookie_environment_variable(); - - $::form->{script} = "menu${menu_script}.pl"; - $::form->{action} = 'display'; - $::form->{callback} = $::form->escape($::form->{callback}); - - require "bin/mozilla/$::form->{script}"; - display(); - -# $form->redirect(); - - $main::lxdebug->leave_sub(); -} - -sub logout { - $main::lxdebug->enter_sub(); - - $main::auth->destroy_session(); - - # remove the callback to display the message - $form->{callback} = "login.pl?action="; - $form->redirect($::locale->text('You are logged out!')); - - $main::lxdebug->leave_sub(); -} - sub company_logo { $main::lxdebug->enter_sub(); my %myconfig = %main::myconfig; - $form->{todo_list} = create_todo_list('login_screen' => 1) if (!$form->{no_todo_list}); + $form->{todo_list} = create_todo_list('login_screen' => 1) if (!$::request->is_mobile) and (!$form->{no_todo_list}) and ($main::auth->check_right($::myconfig{login}, 'productivity')); $form->{stylesheet} = $myconfig{stylesheet}; - $form->{title} = $::locale->text('Lx-Office'); + $form->{title} = $::locale->text('kivitendo'); $form->{interface} = $::dispatcher->interface_type; + $form->{client} = $::auth->client; + $form->{defaults} = SL::DB::Default->get; + + my $git = SL::Git->new; + ($form->{git_head}) = $git->get_log(since => 'HEAD~1', until => 'HEAD') if $git->is_git_installation; + $form->{xmas} = '_xmas' if (DateTime->today->month == 12 && DateTime->today->day < 27); + $form->{xmas} = '_mir' if (DateTime->today->month >= 03 && DateTime->today->year == 2022 + && DateTime->today->month <= 09); + $form->{xmas} = '_mir' if (DateTime->today->day == 24 && DateTime->today->month == 2); # create the logo screen $form->header() unless $form->{noheader}; - print $form->parse_html_template('login/company_logo'); + print $form->parse_html_template('login/company_logo', { version => $::form->read_version }); $main::lxdebug->leave_sub(); } -sub show_error { - my $template = shift; - my %myconfig = %main::myconfig; - $myconfig{countrycode} = $::lx_office_conf{system}->{language}; - $form->{stylesheet} = 'css/lx-office-erp.css'; - - $form->header(); - print $form->parse_html_template($template); - - # $form->parse_html_template('login/auth_db_unreachable'); - # $form->parse_html_template('login/auth_db_needs_update'); - # $form->parse_html_template('login/authentication_pl_missing'); - - ::end_of_request(); -} - 1; __END__