diff options
Diffstat (limited to 'menu.pl')
-rwxr-xr-x | menu.pl | 169 |
1 files changed, 95 insertions, 74 deletions
@@ -10,9 +10,9 @@ # with permission. # # This file contains source code included with or based on SQL-Ledger which -# is Copyright Dieter Simader and DWS Systems Inc. 2000-2005 and licensed -# under the GNU General Public License version 2 or, at your option, any later -# version. For a full list including contact information of contributors, +# is Copyright Dieter Simader and DWS Systems Inc. 2000-2005 and licensed +# under the GNU General Public License version 2 or, at your option, any later +# version. For a full list including contact information of contributors, # maintainers, and copyright holders, see the CONTRIBUTORS file. # # Original Copyright Notice from SQL-Ledger 2.6.17 (before the fork): @@ -59,128 +59,149 @@ use LedgerSMB::Session; use Data::Dumper; require "common.pl"; - # for custom preprocessing logic eval { require "custom.pl"; }; $form = new Form; - + # name of this script $0 =~ tr/\\/\//; $pos = rindex $0, '/'; -$script = substr($0, $pos + 1); +$script = substr( $0, $pos + 1 ); # we use $script for the language module $form->{script} = $script; + # strip .pl for translation files $script =~ s/\.pl//; # pull in DBI use DBI qw(:sql_types); -# grab user config. This is ugly and unecessary if/when -# we get rid of myconfig and use User as a real object -%myconfig = %{LedgerSMB::User->fetch_config($form->{login})}; +# grab user config. This is ugly and unecessary if/when +# we get rid of myconfig and use User as a real object +%myconfig = %{ LedgerSMB::User->fetch_config( $form->{login} ) }; if ($@) { - $locale = LedgerSMB::Locale->get_handle($myconfig{countrycode}) or - $form->error(__FILE__.':'.__LINE__.": Locale not loaded: $!\n"); - $form->{charset} = $locale->encoding; - $form->{charset} = 'UTF-8'; - $locale->encoding('UTF-8'); - - $form->{callback} = ""; - $msg1 = $locale->text('You are logged out!'); - $msg2 = $locale->text('Login'); - $form->redirect("$msg1 <p><a href=\"login.pl\" target=\"_top\">$msg2</a></p>"); + $locale = LedgerSMB::Locale->get_handle( $myconfig{countrycode} ) + or + $form->error( __FILE__ . ':' . __LINE__ . ": Locale not loaded: $!\n" ); + $form->{charset} = $locale->encoding; + $form->{charset} = 'UTF-8'; + $locale->encoding('UTF-8'); + + $form->{callback} = ""; + $msg1 = $locale->text('You are logged out!'); + $msg2 = $locale->text('Login'); + $form->redirect( + "$msg1 <p><a href=\"login.pl\" target=\"_top\">$msg2</a></p>"); } # locale messages -$locale = LedgerSMB::Locale->get_handle($myconfig{countrycode}) or - $form->error(__FILE__.':'.__LINE__.": Locale not loaded: $!\n"); +$locale = LedgerSMB::Locale->get_handle( $myconfig{countrycode} ) + or $form->error( __FILE__ . ':' . __LINE__ . ": Locale not loaded: $!\n" ); + #$form->{charset} = $locale->encoding; $form->{charset} = 'UTF-8'; $locale->encoding('UTF-8'); # send warnings to browser -$SIG{__WARN__} = sub { $form->info($_[0]) }; +$SIG{__WARN__} = sub { $form->info( $_[0] ) }; # send errors to browser -$SIG{__DIE__} = sub { $form->error(__FILE__.':'.__LINE__.': '.$_[0]) }; +$SIG{__DIE__} = + sub { $form->error( __FILE__ . ':' . __LINE__ . ': ' . $_[0] ) }; -map { $form->{$_} = $myconfig{$_} } qw(stylesheet timeout) unless ($form->{type} eq 'preferences'); -$form->db_init(\%myconfig); +map { $form->{$_} = $myconfig{$_} } qw(stylesheet timeout) + unless ( $form->{type} eq 'preferences' ); +$form->db_init( \%myconfig ); -if ($form->{path} ne 'bin/lynx'){ $form->{path} = 'bin/mozilla';} +if ( $form->{path} ne 'bin/lynx' ) { $form->{path} = 'bin/mozilla'; } # did sysadmin lock us out -if (-f "${LedgerSMB::Sysconfig::userspath}/nologin") { - $form->error(__FILE__.':'.__LINE__.': '.$locale->text('System currently down for maintenance!')); +if ( -f "${LedgerSMB::Sysconfig::userspath}/nologin" ) { + $form->error( __FILE__ . ':' . __LINE__ . ': ' + . $locale->text('System currently down for maintenance!') ); } # pull in the main code require "bin/$form->{script}"; # customized scripts -if (-f "bin/custom/$form->{script}") { - eval { require "bin/custom/$form->{script}"; }; +if ( -f "bin/custom/$form->{script}" ) { + eval { require "bin/custom/$form->{script}"; }; } # customized scripts for login -if (-f "bin/custom/$form->{login}_$form->{script}") { - eval { require "bin/custom/$form->{login}_$form->{script}"; }; +if ( -f "bin/custom/$form->{login}_$form->{script}" ) { + eval { require "bin/custom/$form->{login}_$form->{script}"; }; } - -if ($form->{action}) { - # window title bar, user info - $form->{titlebar} = "LedgerSMB ".$locale->text('Version'). " $form->{version} - $myconfig{name} - $myconfig{dbname}"; +if ( $form->{action} ) { + + # window title bar, user info + $form->{titlebar} = + "LedgerSMB " + . $locale->text('Version') + . " $form->{version} - $myconfig{name} - $myconfig{dbname}"; - &check_password; + &check_password; - &{ $form->{action} }; + &{ $form->{action} }; -} else { - $form->error(__FILE__.':'.__LINE__.': '.$locale->text('action= not defined!')); +} +else { + $form->error( __FILE__ . ':' . __LINE__ . ': ' + . $locale->text('action= not defined!') ); } 1; + # end sub check_password { - - require "bin/pw.pl"; - - if ($form->{password}) { - if (! Session::password_check($form, $form->{login}, $form->{password})) { - if ($ENV{GATEWAY_INTERFACE}) { - &getpassword; - } else { - $form->error(__FILE__.':'.__LINE__.': '.$locale->text('Access Denied!')); - } - exit; - } else { - Session::session_create($form); - } - - } else { - if ($ENV{GATEWAY_INTERFACE}) { - $ENV{HTTP_COOKIE} =~ s/;\s*/;/g; - @cookies = split /;/, $ENV{HTTP_COOKIE}; - foreach (@cookies) { - ($name,$value) = split /=/, $_, 2; - $cookie{$name} = $value; - } - - #check for valid session - if(!Session::session_check($cookie{"LedgerSMB"}, $form)){ - &getpassword(1); - exit; - } - } else { - exit; - } - } -} + require "bin/pw.pl"; + + if ( $form->{password} ) { + if ( + !Session::password_check( + $form, $form->{login}, $form->{password} + ) + ) + { + if ( $ENV{GATEWAY_INTERFACE} ) { + &getpassword; + } + else { + $form->error( __FILE__ . ':' . __LINE__ . ': ' + . $locale->text('Access Denied!') ); + } + exit; + } + else { + Session::session_create($form); + } + + } + else { + if ( $ENV{GATEWAY_INTERFACE} ) { + $ENV{HTTP_COOKIE} =~ s/;\s*/;/g; + @cookies = split /;/, $ENV{HTTP_COOKIE}; + foreach (@cookies) { + ( $name, $value ) = split /=/, $_, 2; + $cookie{$name} = $value; + } + + #check for valid session + if ( !Session::session_check( $cookie{"LedgerSMB"}, $form ) ) { + &getpassword(1); + exit; + } + } + else { + exit; + } + } +} |