summaryrefslogtreecommitdiff
path: root/includes/pear/Auth/Frontend/Html.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/pear/Auth/Frontend/Html.php')
-rw-r--r--includes/pear/Auth/Frontend/Html.php142
1 files changed, 142 insertions, 0 deletions
diff --git a/includes/pear/Auth/Frontend/Html.php b/includes/pear/Auth/Frontend/Html.php
new file mode 100644
index 0000000..6719e92
--- /dev/null
+++ b/includes/pear/Auth/Frontend/Html.php
@@ -0,0 +1,142 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
+
+/**
+ * Standard Html Login form
+ *
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.01 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_01.txt. If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category Authentication
+ * @package Auth
+ * @author Martin Jansen <mj@php.net>
+ * @author Adam Ashley <aashley@php.net>
+ * @copyright 2001-2006 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version CVS: $Id: Html.php 237449 2007-06-12 03:11:27Z aashley $
+ * @link http://pear.php.net/package/Auth
+ * @since File available since Release 1.3.0
+ */
+
+/**
+ * Standard Html Login form
+ *
+ * @category Authentication
+ * @package Auth
+ * @author Yavor Shahpasov <yavo@netsmart.com.cy>
+ * @author Adam Ashley <aashley@php.net>
+ * @copyright 2001-2006 The PHP Group
+ * @license http://www.php.net/license/3_01.txt PHP License 3.01
+ * @version Release: @package_version@ File: $Revision: 237449 $
+ * @link http://pear.php.net/package/Auth
+ * @since Class available since Release 1.3.0
+ */
+class Auth_Frontend_Html {
+
+ // {{{ render()
+
+ /**
+ * Displays the login form
+ *
+ * @param object The calling auth instance
+ * @param string The previously used username
+ * @return void
+ */
+ function render(&$caller, $username = '') {
+ $loginOnClick = 'return true;';
+
+ // Try To Use Challene response
+ // TODO javascript might need some improvement for work on other browsers
+ if($caller->advancedsecurity && $caller->storage->supportsChallengeResponse() ) {
+
+ // Init the secret cookie
+ $caller->session['loginchallenege'] = md5(microtime());
+
+ print "\n";
+ print '<script language="JavaScript">'."\n";
+
+ include 'Auth/Frontend/md5.js';
+
+ print "\n";
+ print ' function securePassword() { '."\n";
+ print ' var pass = document.getElementById(\''.$caller->getPostPasswordField().'\');'."\n";
+ print ' var secret = document.getElementById(\'authsecret\')'."\n";
+ //print ' alert(pass);alert(secret); '."\n";
+
+ // If using md5 for password storage md5 the password before
+ // we hash it with the secret
+ // print ' alert(pass.value);';
+ if ($caller->storage->getCryptType() == 'md5' ) {
+ print ' pass.value = hex_md5(pass.value); '."\n";
+ #print ' alert(pass.value);';
+ }
+
+ print ' pass.value = hex_md5(pass.value+\''.$caller->session['loginchallenege'].'\'); '."\n";
+ // print ' alert(pass.value);';
+ print ' secret.value = 1;'."\n";
+ print ' var doLogin = document.getElementById(\'doLogin\')'."\n";
+ print ' doLogin.disabled = true;'."\n";
+ print ' return true;';
+ print ' } '."\n";
+ print '</script>'."\n";;
+ print "\n";
+
+ $loginOnClick = ' return securePassword(); ';
+ }
+
+ print '<center>'."\n";
+
+ $status = '';
+ if (!empty($caller->status) && $caller->status == AUTH_EXPIRED) {
+ $status = '<i>Your session has expired. Please login again!</i>'."\n";
+ } else if (!empty($caller->status) && $caller->status == AUTH_IDLED) {
+ $status = '<i>You have been idle for too long. Please login again!</i>'."\n";
+ } else if (!empty ($caller->status) && $caller->status == AUTH_WRONG_LOGIN) {
+ $status = '<i>Wrong login data!</i>'."\n";
+ } else if (!empty ($caller->status) && $caller->status == AUTH_SECURITY_BREACH) {
+ $status = '<i>Security problem detected. </i>'."\n";
+ }
+
+ print '<form method="post" action="'.$caller->server['PHP_SELF'].'" '
+ .'onSubmit="'.$loginOnClick.'">'."\n";
+ print '<table border="0" cellpadding="2" cellspacing="0" '
+ .'summary="login form" align="center" >'."\n";
+ print '<tr>'."\n";
+ print ' <td colspan="2" bgcolor="#eeeeee"><strong>Login </strong>'
+ .$status.'</td>'."\n";
+ print '</tr>'."\n";
+ print '<tr>'."\n";
+ print ' <td>Username:</td>'."\n";
+ print ' <td><input type="text" id="'.$caller->getPostUsernameField()
+ .'" name="'.$caller->getPostUsernameField().'" value="' . $username
+ .'" /></td>'."\n";
+ print '</tr>'."\n";
+ print '<tr>'."\n";
+ print ' <td>Password:</td>'."\n";
+ print ' <td><input type="password" id="'.$caller->getPostPasswordField()
+ .'" name="'.$caller->getPostPasswordField().'" /></td>'."\n";
+ print '</tr>'."\n";
+ print '<tr>'."\n";
+
+ //onClick=" '.$loginOnClick.' "
+ print ' <td colspan="2" bgcolor="#eeeeee"><input value="Login" '
+ .'id="doLogin" name="doLogin" type="submit" /></td>'."\n";
+ print '</tr>'."\n";
+ print '</table>'."\n";
+
+ // Might be a good idea to make the variable name variable
+ print '<input type="hidden" id="authsecret" name="authsecret" value="" />';
+ print '</form>'."\n";
+ print '</center>'."\n";
+ }
+
+ // }}}
+
+}
+
+?>