summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/autohandler2
-rw-r--r--httemplate/elements/header.html33
-rw-r--r--httemplate/elements/logout.html44
-rw-r--r--httemplate/loginout/login.html68
-rw-r--r--httemplate/loginout/logout.html28
5 files changed, 92 insertions, 83 deletions
diff --git a/httemplate/autohandler b/httemplate/autohandler
index c326e3e18..b5b1071c1 100644
--- a/httemplate/autohandler
+++ b/httemplate/autohandler
@@ -46,5 +46,5 @@ if ( UNIVERSAL::can(dbh, 'sprintProfile') ) {
</%filter>
<%cleanup>
- dbh->commit();
+ dbh->commit() if dbh;
</%cleanup>
diff --git a/httemplate/elements/header.html b/httemplate/elements/header.html
index c6ad3c387..4f5015e7a 100644
--- a/httemplate/elements/header.html
+++ b/httemplate/elements/header.html
@@ -2,18 +2,18 @@
Example:
- include( '/elements/header.html',
- {
- 'title' => 'Title',
- 'menubar' => \@menubar,
- 'etc' => '', #included in <BODY> tag, for things like onLoad=
- 'head' => '', #included before closing </HEAD> tag
- 'nobr' => 0, #1 for no <BR><BR> after the title
- }
- );
-
- #old-style
- include( '/elements/header.html', 'Title', $menubar, $etc, $head);
+ <& /elements/header.html',
+ {
+ 'title' => 'Title',
+ 'menubar' => \@menubar,
+ 'etc' => '', #included in <BODY> tag, for things like onLoad=
+ 'head' => '', #included before closing </HEAD> tag
+ 'nobr' => 0, #1 for no <BR><BR> after the title
+ }
+ &>
+
+ %#old-style
+ <& /elements/header.html, 'Title', $menubar, $etc, $head &>
</%doc>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
@@ -41,13 +41,6 @@ Example:
<% include('init_overlib.html') |n %>
<% include('rs_init_object.html') |n %>
- <% include('logout.html') |n %>
-% my $timeout = $conf->config('logout-timeout');
-% if ( $timeout && $timeout =~ /^\s*\d+\s*$/ ) {
- <script type="text/javascript">
- setTimeout('logout()', <% 60000 * $timeout %>);
- </script>
-% }
<% $head |n %>
@@ -59,7 +52,7 @@ Example:
<td align=left BGCOLOR="#ffffff"> <!-- valign="top" -->
<font size=6><% $company_name || 'ExampleCo' %></font>
</td>
- <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% getotaker %>&nbsp;</b> <FONT SIZE="-2"><a href="javascript:void(0);" onClick="logout();">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/pref.html" STYLE="color: #000000">Preferences</a>
+ <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% getotaker %>&nbsp;</b> <FONT SIZE="-2"><a href="<%$fsurl%>loginout/logout.html">logout</a></FONT><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/pref.html" STYLE="color: #000000">Preferences</a>
% if ( $conf->config("ticket_system")
% && FS::TicketSystem->access_right(\%session, 'ModifySelf') ) {
| <a href="<%$fsurl%>rt/Prefs/Other.html" STYLE="color: #000000">Ticketing preferences</a>
diff --git a/httemplate/elements/logout.html b/httemplate/elements/logout.html
deleted file mode 100644
index 313dbfaf1..000000000
--- a/httemplate/elements/logout.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<%doc>
-
-Example:
-
- include( '/elements/logout.html');
- This is the <a href="javascript:void()" onClick="logout();">logout</a> link.
-
-</%doc>
-<SCRIPT TYPE="text/javascript">
-
- function logout() {
- // count args; build URL
- var url = "<% $fsurl. 'loginout/logout.html' %>";
-
- var xmlhttp = rs_init_object();
- xmlhttp.open("GET", url, false, "magic", "notyet");
- xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
- xmlhttp.send(null);
-
- if (xmlhttp.readyState != 4) {
- alert("Logout failed: readyState is " + xmlhttp.readyState);
- return;
- }
-
- if (xmlhttp.status != 200) {
- alert("Logout failed: status is " + xmlhttp.status);
- } else {
- var data = xmlhttp.responseText;
- // alert('received response: ' + data);
- if ( data.indexOf("<b>System error</b>") > -1 ) {
- var w;
- if ( w = window.open("about:blank") ) {
- w.document.write(data);
- } else {
- // popup blocking? should use an overlib popup instead
- alert("Error popup disabled; try disabling popup blocking to see");
- }
- } else {
- window.location = "<% $fsurl. 'loginout/logout.html' %>";
- }
- }
- }
-
-</SCRIPT>
diff --git a/httemplate/loginout/login.html b/httemplate/loginout/login.html
new file mode 100644
index 000000000..e5b45893b
--- /dev/null
+++ b/httemplate/loginout/login.html
@@ -0,0 +1,68 @@
+<& /elements/header-minimal.html, 'Login' &>
+<link href="<%$url_string%>elements/freeside.css" type="text/css" rel="stylesheet">
+
+<CENTER>
+
+ <BR>
+ <FONT SIZE=5>Login</FONT>
+ <BR><BR>
+
+% if ( $error ) {
+ <FONT SIZE="+1" COLOR="#ff0000"><% $error |h %></FONT>
+ <BR><BR>
+% }
+
+%# <FORM METHOD="POST" ACTION="<%$url_string%>loginout/login">
+ <FORM METHOD="POST" ACTION="/login">
+ <INPUT TYPE="hidden" NAME="destination" VALUE="<% $r->prev->uri %>">
+
+ <TABLE CELLSPACING=0 CELLPADDING=4 BGCOLOR="#cccccc">
+ <TR>
+ <TD ALIGN="right">Username: </TD>
+ <TD><INPUT TYPE="text" NAME="credential_0" SIZE="13"></TD>
+ </TR>
+ <TR>
+ <TD ALIGN="right">Password: </TD>
+ <TD><INPUT TYPE="password" NAME="credential_1" SIZE="13"></TD>
+ </TR>
+ </TABLE>
+ <BR>
+
+ <INPUT TYPE="submit" VALUE="Login">
+
+ </FORM>
+
+</CENTER>
+
+</BODY></HTML>
+<%init>
+
+my %error = (
+ 'no_cookie' => '', #First login, don't display an error
+ 'bad_cookie' => 'Bad Cookie', #timed out? server reboot?
+ 'bad_credentials' => 'Incorrect username / password',
+ 'logout' => 'You have been logged out.',
+);
+
+my $url_string = CGI->new->url;
+
+my $error = $cgi->param('logout') || $r->prev->subprocess_env("AuthCookieReason");
+$error = exists($error{$error}) ? $error{$error} : $error;
+
+#fake a freeside path for /login so we get our .css. shrug
+$url_string =~ s/login$/freeside\/login/ unless $url_string =~ /freeside\//;
+
+#even though this is kludgy and false laziness w/CGI.pm
+ $url_string =~ s{ / index\.html /? $ }
+ {/}x;
+ $url_string =~
+ s{
+ /(login|loginout)
+ ([\w\-\.\/]*)
+ $
+ }
+ {}ix;
+
+ $url_string .= '/' unless $url_string =~ /\/$/;
+
+</%init>
diff --git a/httemplate/loginout/logout.html b/httemplate/loginout/logout.html
index d8e1c634a..33b87feb0 100644
--- a/httemplate/loginout/logout.html
+++ b/httemplate/loginout/logout.html
@@ -1,18 +1,10 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
- <HEAD>
- <TITLE>
- Logout page
- </TITLE>
- </HEAD>
- <BODY>
- <BR><BR>
- <CENTER>
- You have logged out.
- </CENTER>
- <BR><BR>
- <CENTER>
- You can <a href="..">log in</a> again.
- </CENTER>
- </BODY>
-</HTML>
+<% $cgi->redirect($fsurl.'?logout=logout') %>
+<%init>
+
+my $auth_type = $r->auth_type;
+
+# Delete the cookie, etc.
+$auth_type->logout($r);
+#XXX etc: should delete the server-side session
+
+</%init>