diff options
Diffstat (limited to 'httemplate')
| -rw-r--r-- | httemplate/autohandler | 2 | ||||
| -rw-r--r-- | httemplate/elements/header.html | 33 | ||||
| -rw-r--r-- | httemplate/elements/logout.html | 44 | ||||
| -rw-r--r-- | httemplate/loginout/login.html | 68 | ||||
| -rw-r--r-- | httemplate/loginout/logout.html | 28 |
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 %> </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 %> </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> |
