X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=bin%2Fmozilla%2Flogin.pl;h=665cb9193a6fecb14c91d9c9972a70712c305b24;hb=061105807cbfb5b86b804e71db9509c996c93912;hp=e88872113808af90cbf6a61d87065bbbb69b9ad2;hpb=de763d70b4b2e0501565e579fb4726e033594589;p=kivitendo-erp.git diff --git a/bin/mozilla/login.pl b/bin/mozilla/login.pl index e88872113..665cb9193 100644 --- a/bin/mozilla/login.pl +++ b/bin/mozilla/login.pl @@ -28,217 +28,173 @@ ####################################################################### use DBI; +use SL::Auth; use SL::User; use SL::Form; -$form = new Form; +require "bin/mozilla/common.pl"; +require "bin/mozilla/todo.pl"; -$locale = new Locale $language, "login"; +use strict; -# customization -if (-f "$form->{path}/custom_$form->{script}") { - eval { require "$form->{path}/custom_$form->{script}"; }; - $form->error($@) if ($@); -} +our $cgi; +our $form; +our $auth; -# per login customization -if (-f "$form->{path}/$form->{login}_$form->{script}") { - eval { require "$form->{path}/$form->{login}_$form->{script}"; }; - $form->error($@) if ($@); -} +sub run { + $::lxdebug->enter_sub; + my $session_result = shift; -# window title bar, user info -$form->{titlebar} = - "Lx-Office " . $locale->text('Version') . " $form->{version}"; + $form = $::form; + $auth = $::auth; -if ($form->{action}) { - $form->{titlebar} .= " - $myconfig{name} - $myconfig{dbname}"; - &{ $locale->findsub($form->{action}) }; -} else { - &login_screen; -} + $form->{stylesheet} = "lx-office-erp.css"; + $form->{favicon} = "favicon.ico"; -1; + 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 { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + my ($msg) = @_; if (-f "css/lx-office-erp.css") { $form->{stylesheet} = "lx-office-erp.css"; } - $form->{fokus} = "loginscreen.login"; - $form->header; + $form->{msg} = $msg; + $form->header(); - print qq| + 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}; -