From 301545e572f38b78c90b27219f4c8715837f54fd Mon Sep 17 00:00:00 2001 From: einhverfr Date: Sun, 10 Sep 2006 01:41:56 +0000 Subject: Revised copyright notices so that these are not as ambiguous. git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@53 4979c152-3d1c-0410-bac9-87ea11338e46 --- bin/lynx/login.pl | 546 ++++++++++++++++++++++++++---------------------------- 1 file changed, 259 insertions(+), 287 deletions(-) (limited to 'bin/lynx/login.pl') diff --git a/bin/lynx/login.pl b/bin/lynx/login.pl index fb2fe312..421b5c7e 100755 --- a/bin/lynx/login.pl +++ b/bin/lynx/login.pl @@ -1,61 +1,52 @@ -###################################################################### -# LedgerSMB Small Medium Business Accounting -# Copyright (c) 2000 +#===================================================================== +# LedgerSMB +# Small Medium Business Accounting software +# +# See COPYRIGHT file for copyright information +#====================================================================== # -# Author: DWS Systems Inc. -# Web: http://sourceforge.net/projects/ledger-smb/ +# This file has undergone whitespace cleanup. # -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# 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. -###################################################################### +#====================================================================== # # login frontend # ####################################################################### - use DBI; -use SL::User; -use SL::Form; +use LedgerSMB::User; +use LedgerSMB::Form; +## will need this later when session_destroy will be used +#use LedgerSMB::Session; -$form = new Form; +$form = new Form; $locale = new Locale $language, "login"; $form->{charset} = $locale->{charset}; # customization if (-f "$form->{path}/custom_$form->{script}") { - eval { require "$form->{path}/custom_$form->{script}"; }; - $form->error($@) if ($@); + eval { require "$form->{path}/custom_$form->{script}"; }; + $form->error($@) if ($@); } # per login customization if (-f "$form->{path}/$form->{login}_$form->{script}") { - eval { require "$form->{path}/$form->{login}_$form->{script}"; }; - $form->error($@) if ($@); + eval { require "$form->{path}/$form->{login}_$form->{script}"; }; + $form->error($@) if ($@); } # window title bar, user info $form->{titlebar} = "LedgerSMB ".$locale->text('Version'). " $form->{version}"; if ($form->{action}) { - $form->{titlebar} .= " - $myconfig{name} - $myconfig{dbname}"; - &{ $locale->findsub($form->{action}) }; + $form->{titlebar} .= " - $myconfig{name} - $myconfig{dbname}"; + &{ $locale->findsub($form->{action}) }; + } else { - &login_screen; + &login_screen; } @@ -64,287 +55,268 @@ if ($form->{action}) { sub login_screen { - $form->{stylesheet} = "ledger-smb.css"; - $form->{favicon} = "favicon.ico"; - - $form->{endsession} = 1; - $form->header(1); - - if ($form->{login}) { - $sf = qq|function sf() { document.login.password.focus(); }|; - } else { - $sf = qq|function sf() { document.login.login.focus(); }|; - } - - print qq| - -|; - - print qq| - - - -
-
-
- -
- - - - - - + $form->{stylesheet} = "ledger-smb.css"; + $form->{favicon} = "favicon.ico"; + + $form->{endsession} = 1; + + if ($form->{login}) { + $sf = q|function sf() { document.login.password.focus(); }|; + } else { + $sf = q|function sf() { document.login.login.focus(); }|; + } + + my $headeradd = qq| + |; + + $form->header(1, $headeradd) + + print qq| + + +

+
+ + + + + +
- -|; +|; } sub selectdataset { - my ($login) = @_; - - if (-f "css/ledger-smb.css") { - $form->{stylesheet} = "ledger-smb.css"; - } - - $form->header(1); - - print qq| - - -
-
-
- -
- - - + + +
- -|; - +|; } sub login { - $form->{stylesheet} = "ledger-smb.css"; - $form->{favicon} = "favicon.ico"; - - $form->error($locale->text('You did not enter a name!')) unless ($form->{login}); - - if (! $form->{beenthere}) { - open(FH, "$memberfile") or $form->error("$memberfile : $!"); - @a = ; - close(FH); - - foreach $item (@a) { - - if ($item =~ /^\[(.*?)\]/) { - $login = $1; - $found = 1; - } - - if ($item =~ /^company=/) { - if ($login =~ /$form->{login}\@/ && $found) { - ($null, $name) = split /=/, $item, 2; - $login{$login} = $name; + $form->{stylesheet} = "ledger-smb.css"; + $form->{favicon} = "favicon.ico"; + + $form->error($locale->text('You did not enter a name!')) unless ($form->{login}); + + if (! $form->{beenthere}) { + open(FH, "$memberfile") or $form->error("$memberfile : $!"); + @a = ; + close(FH); + + foreach $item (@a) { + + if ($item =~ /^\[(.*?)\]/) { + $login = $1; + $found = 1; + } + + if ($item =~ /^company=/) { + if ($login =~ /$form->{login}\@/ && $found) { + ($null, $name) = split /=/, $item, 2; + $login{$login} = $name; + } + $found = 0; + } + } + + if (keys %login > 1) { + &selectdataset(\%login); + exit; + } } - $found = 0; - } - - } - - if (keys %login > 1) { - &selectdataset(\%login); - exit; - } - } - - - $user = new User $memberfile, $form->{login}; - - # if we get an error back, bale out - if (($errno = $user->login(\%$form, $userspath)) <= -1) { - - $errno *= -1; - $err[1] = $locale->text('Access Denied!'); - $err[2] = $locale->text('Incorrect Dataset version!'); - $err[3] = $locale->text('Dataset is newer than version!'); - - if ($errno == 4) { - # upgrade dataset and log in again - open FH, ">$userspath/nologin" or $form->error($!); - - for (qw(dbname dbhost dbport dbdriver dbuser dbpasswd)) { $form->{$_} = $user->{$_} } - - $form->{dbpasswd} = unpack 'u', $form->{dbpasswd}; - - $form->{dbupdate} = "db$user->{dbname}"; - $form->{$form->{dbupdate}} = 1; - - $form->header; - print $locale->text('Upgrading to Version')." $form->{version} ... "; - - # required for Oracle - $form->{dbdefault} = $sid; - - $user->dbupdate(\%$form); - - # remove lock file - unlink "$userspath/nologin"; - - print $locale->text('done'); - - print "

{login}&sessionid=$form->{sessionid}&path=$form->{path}&action=display&main=company_logo&js=$form->{js}>".$locale->text('Continue').""; - - exit; - } - - $form->error($err[$errno]); - } - - # made it this far, setup callback for the menu - $form->{callback} = "menu.pl?action=display"; - for (qw(login path js)) { $form->{callback} .= "&$_=$form->{$_}" } - - # check for recurring transactions - if ($user->{acs} !~ /Recurring Transactions/) { - if ($user->check_recurring(\%$form)) { - $form->{callback} .= "&main=recurring_transactions"; - } else { - $form->{callback} .= "&main=company_logo"; - } - } else { - if ($user->{role} eq 'user') { - $form->{callback} .= "&main=company_logo"; - } else { - if ($user->check_recurring(\%$form)) { - $form->{callback} .= "&main=recurring_transactions"; - } else { - $form->{callback} .= "&main=company_logo"; - } - } - } - - $form->redirect; - -} + $user = new User $memberfile, $form->{login}; -sub logout { + # if we get an error back, bale out + if (($errno = $user->login(\%$form, $userspath)) <= -1) { - $form->{callback} = "$form->{script}?path=$form->{path}&login=$form->{login}"; + $errno *= -1; + $err[1] = $locale->text('Access Denied!'); + $err[2] = $locale->text('Incorrect Dataset version!'); + $err[3] = $locale->text('Dataset is newer than version!'); - $form->{endsession} = 1; - - $form->redirect; + if ($errno == 4) { + # upgrade dataset and log in again + open FH, ">$userspath/nologin" or $form->error($!); + + for (qw(dbname dbhost dbport dbdriver dbuser dbpasswd)) { $form->{$_} = $user->{$_} } + + $form->{dbpasswd} = unpack 'u', $form->{dbpasswd}; + + $form->{dbupdate} = "db$user->{dbname}"; + $form->{$form->{dbupdate}} = 1; + + $form->header; + print qq||; + print $locale->text('Upgrading to Version')." $form->{version} ... "; + + # required for Oracle + $form->{dbdefault} = $sid; + + $user->dbupdate(\%$form); + + # remove lock file + unlink "$userspath/nologin"; + + print $locale->text('done'); + + print "

{login}&sessionid=$form->{sessionid}&path=$form->{path}&action=display&main=company_logo&js=$form->{js}>\">".$locale->text('Continue').""; + print qq||; + exit; + } + + $form->error($err[$errno]); + } + + # made it this far, setup callback for the menu + $form->{callback} = "menu.pl?action=display&password=$form->{password}"; + for (qw(login path js)) { $form->{callback} .= "&$_=$form->{$_}" } + + # check for recurring transactions + if ($user->{acs} !~ /Recurring Transactions/) { + + if ($user->check_recurring(\%$form)) { + $form->{callback} .= "&main=recurring_transactions"; + } else { + $form->{callback} .= "&main=company_logo"; + } + + } else { + + if ($user->{role} eq 'user') { + $form->{callback} .= "&main=company_logo"; + } else { + + if ($user->check_recurring(\%$form)) { + $form->{callback} .= "&main=recurring_transactions"; + } else { + $form->{callback} .= "&main=company_logo"; + } + } + } + + $form->redirect; + +} + + + +sub logout { + $form->{callback} = "$form->{script}?path=$form->{path}&login=$form->{login}"; + $form->{endsession} = 1; + #delete the cookie in the browser manually (can't use session_destroy here unfortunately) + print qq|Set-Cookie: LedgerSMB=; path=/;\n|; + $form->redirect; } -- cgit v1.2.3