summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/mozilla/login.pl505
1 files changed, 242 insertions, 263 deletions
diff --git a/bin/mozilla/login.pl b/bin/mozilla/login.pl
index 00ecf829..3173b2b1 100755
--- a/bin/mozilla/login.pl
+++ b/bin/mozilla/login.pl
@@ -5,7 +5,7 @@
# See COPYRIGHT file for copyright information
#======================================================================
#
-# This file has NOT undergone whitespace cleanup.
+# This file has undergone whitespace cleanup.
#
#======================================================================
#
@@ -13,39 +13,40 @@
#
#######################################################################
-
use DBI;
use LedgerSMB::User;
use LedgerSMB::Form;
-use LedgerSMB::Session;
+## 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;
}
@@ -54,275 +55,254 @@ if ($form->{action}) {
sub login_screen {
- $form->{stylesheet} = "sql-ledger.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|
-<script language="JavaScript" type="text/javascript">
-<!--
-var agt = navigator.userAgent.toLowerCase();
-var is_major = parseInt(navigator.appVersion);
-var is_nav = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)
- && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)
- && (agt.indexOf('webtv') == -1));
-var is_nav4lo = (is_nav && (is_major <= 4));
-
-function jsp() {
- if (is_nav4lo)
- document.login.js.value = "0"
- else
- document.login.js.value = "1"
-}
-$sf
-// End -->
-</script>
-|;
-
- print qq|
-
-<body class=login onload="jsp(); sf()">
-
-<pre>
-
-</pre>
-
-<center>
-<table class=login border=3 cellpadding=20>
- <tr>
- <td class=login align=center><a href="http://sourceforge.net/projects/ledger-smb/" target=_top><img src="ledger-smb.png" width="200" heith="100" border="0" /></a>
-<h1 class=login align=center>|.$locale->text('Version').qq| $form->{version}
-</h1>
-
-<p>
-
-<form method=post action=$form->{script} name=login>
-
- <table width=100%>
- <tr>
- <td align=center>
- <table>
- <tr>
- <th align=right>|.$locale->text('Name').qq|</th>
- <td><input class=login name=login size=30 value=$form->{login}></td>
- </tr>
- <tr>
- <th align=right>|.$locale->text('Password').qq|</th>
- <td><input class=login type=password name=password size=30></td>
- </tr>
- <input type=hidden name=path value=$form->{path}>
- <input type=hidden name=js value=$form->{js}>
- </table>
-
- <br>
- <input type=submit name=action value="|.$locale->text('Login').qq|">
- </td>
- </tr>
- </table>
-
-</form>
-
- </td>
- </tr>
-</table>
-
+ $form->{stylesheet} = "sql-ledger.css";
+ $form->{favicon} = "favicon.ico";
+
+ $form->{endsession} = 1;
+ $form->header(1);
+
+ if ($form->{login}) {
+ $sf = q|function sf() { document.login.password.focus(); }|;
+ } else {
+ $sf = q|function sf() { document.login.login.focus(); }|;
+ }
+
+ print qq|
+ <script language="JavaScript" type="text/javascript">
+ <!--
+ var agt = navigator.userAgent.toLowerCase();
+ var is_major = parseInt(navigator.appVersion);
+ var is_nav = ((agt.indexOf('mozilla') != -1) && (agt.indexOf('spoofer') == -1)
+ && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera') == -1)
+ && (agt.indexOf('webtv') == -1));
+ var is_nav4lo = (is_nav && (is_major <= 4));
+
+ function jsp() {
+ if (is_nav4lo){
+ document.login.js.value = "0";
+ } else {
+ document.login.js.value = "1";
+ }
+ }
+
+ $sf
+ // End -->
+ </script>|;
+
+ print qq|
+
+<body class="login" onload="jsp(); sf();">
+ <br /><br />
+ <center>
+ <table class="login" border="3" cellpadding="20">
+ <tr>
+ <td class="login" align="center">
+ <a href="http://sourceforge.net/projects/ledger-smb/" target="_top"><img src="ledger-smb.png" width="200" heith="100" border="0" /></a>
+ <h1 class="login" align="center">|.$locale->text('Version').qq| $form->{version}</h1>
+ <p>
+ <form method="post" action="$form->{script}" name="login">
+ <table width="100%">
+ <tr>
+ <td align="center">
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Name').qq|</th>
+ <td><input class="login" name="login" size="30" value="$form->{login}" /></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Password').qq|</th>
+ <td><input class="login" type="password" name="password" size="30" /></td>
+ </tr>
+ </table>
+ <br />
+ </td>
+ </tr>
+ </table>
+ <input type="hidden" name="path" value="$form->{path}" />
+ <input type="hidden" name="js" value="$form->{js}" />
+ <input type="submit" name="action" value="|.$locale->text('Login').qq|" />
+ </form>
+ </p>
+ </td>
+ </tr>
+ </table>
+ </center>
</body>
-</html>
-|;
+</html>|;
}
sub selectdataset {
- my ($login) = @_;
-
- if (-f "css/sql-ledger.css") {
- $form->{stylesheet} = "sql-ledger.css";
- }
-
- $form->header(1);
-
- print qq|
-<body class=login onload="document.forms[0].password.focus()" />
-
-<pre>
-
-</pre>
-
-<center>
-<table class=login border=3 cellpadding=20>
- <tr>
- <td class=login align=center><a href="http://sourceforge.net/projects/ledger-smb/" target=_top><img src="ledger-smb.png" width="100" heith="100" border="0" /></a>
-<h1 class=login align=center>|.$locale->text('Version').qq| $form->{version}
-</h1>
-
-<p>
-
-<form method=post action=$form->{script}>
-
-<input type=hidden name=beenthere value=1>
-
- <table width=100%>
- <tr>
- <td align=center>
- <table>
- <tr>
- <th align=right>|.$locale->text('Name').qq|</th>
- <td>$form->{login}</td>
- </tr>
- <tr>
- <th align=right>|.$locale->text('Password').qq|</th>
- <td><input class=login type=password name=password size=30 value=$form->{password}></td>
- </tr>
- <input type=hidden name=js value=$form->{js}>
- <input type=hidden name=path value=$form->{path}>
- <tr>
- <th align=right>|.$locale->text('Company').qq|</th>
- <td>|;
-
+ my ($login) = @_;
+
+ if (-f "css/sql-ledger.css") {
+ $form->{stylesheet} = "sql-ledger.css";
+ }
+
+ $form->header(1);
+
+ print qq|
+<body class="login" onload="document.forms[0].password.focus()" />
+ <br /><br />
+ <center>
+ <table class="login" border="3" cellpadding="20">
+ <tr>
+ <td class="login" align="center">
+ <a href="http://sourceforge.net/projects/ledger-smb/" target="_top"><img src="ledger-smb.png" width="100" heith="100" border="0" /></a>
+ <h1 class="login" align="center">|.$locale->text('Version').qq| $form->{version}</h1>
+ <p>
+ <form method="post" action="$form->{script}">
+ <input type="hidden" name="beenthere" value="1" />
+ <input type="hidden" name="js" value="$form->{js}" />
+ <input type="hidden" name="path" value="$form->{path}" />
+ <table width="100%">
+ <tr>
+ <td align="center">
+ <table>
+ <tr>
+ <th align="right">|.$locale->text('Name').qq|</th>
+ <td>$form->{login}</td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Password').qq|</th>
+ <td><input class="login" type="password" name="password" size="30" value="$form->{password}" /></td>
+ </tr>
+ <tr>
+ <th align="right">|.$locale->text('Company').qq|</th>
+ <td>|;
+
$checked = "checked";
foreach $login (sort { $login{$a} cmp $login{$b} } keys %{ $login }) {
- print qq|
- <br><input class=login type=radio name=login value=$login $checked>$login{$login}
- |;
- $checked = "";
+ print qq| <br /><input class="login" type="radio" name="login" value="$login" $checked>$login{$login} |;
+ $checked = "";
}
- print qq|
- </td>
- </tr>
- </table>
- <br>
- <input type=submit name=action value="|.$locale->text('Login').qq|">
- </td>
- </tr>
- </table>
-
-</form>
-
- </td>
- </tr>
-</table>
-
+ print qq|
+ </td>
+ </tr>
+ </table>
+ <br />
+ <input type="submit" name="action" value="|.$locale->text('Login').qq|">
+ </td>
+ </tr>
+ </table>
+ </form>
+ </td>
+ </tr>
+ </table>
+ </center>
</body>
-</html>
-|;
-
+</html>|;
}
sub login {
- $form->{stylesheet} = "sql-ledger.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 = <FH>;
- 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} = "sql-ledger.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 = <FH>;
+ 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 "<p><a href=menu.pl?login=$form->{login}&sessionid=$form->{sessionid}&path=$form->{path}&action=display&main=company_logo&js=$form->{js}>".$locale->text('Continue')."</a>";
-
- 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;
-
+
+
+ $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 "<p><a href=\"menu.pl?login=$form->{login}&sessionid=$form->{sessionid}&path=$form->{path}&action=display&main=company_logo&js=$form->{js}>\"".$locale->text('Continue')."</a>";
+ 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;
+
}
@@ -333,7 +313,6 @@ sub logout {
$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;
}