Fixed Login for login.php and myhome.php.

This commit is contained in:
2014-01-19 02:33:51 +01:00
parent ba296ed691
commit 0a727eecfa
5 changed files with 89 additions and 93 deletions

View File

@@ -138,9 +138,9 @@ class OcSmarty extends Smarty
function display($dummy1=null, $dummy2=null, $dummy3=null)
{
global $opt, $db, $cookie, $menu, $sqldebugger, $translate;
global $opt, $db, $menu, $sqldebugger, $translate;
global $useragent_msie;
$cookie->close();
$GLOBALS['container']->get('ocde.cookie')->close();
// if the user is an admin, dont cache the content
if ($GLOBALS['container']->get('ocde.login')->isAdmin()) {
@@ -366,8 +366,8 @@ class OcSmarty extends Smarty
function redirect($page)
{
global $cookie, $opt;
$cookie->close();
global $opt;
$GLOBALS['container']->get('ocde.cookie')->close();
// close db-connection
sql_disconnect();
@@ -438,7 +438,6 @@ class OcSmarty extends Smarty
function header()
{
global $opt;
global $cookie;
if ($opt['gui'] == GUI_HTML)
{
@@ -456,7 +455,7 @@ class OcSmarty extends Smarty
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// set the cookie
$cookie->header();
$GLOBALS['container']->get('ocde.cookie')->header();
}
}

View File

@@ -7,29 +7,28 @@
* Constant definitions
***************************************************************************/
define('GUI_HTML', 0);
define('GUI_TEXT', 1);
define('GUI_NUSOAP', 2);
define('GUI_HTML', 0);
define('GUI_TEXT', 1);
define('GUI_NUSOAP', 2);
define('DEBUG_NO', 0);
define('DEBUG_DEVELOPER', 1);
define('DEBUG_TEMPLATES', 2);
define('DEBUG_OUTOFSERVICE', 4 | DEBUG_TEMPLATES);
define('DEBUG_TESTING', 8 | DEBUG_TEMPLATES);
define('DEBUG_SQLDEBUGGER', 16);
define('DEBUG_TRANSLATE', 32); // DEBUG_TEMPLATES added in common.inc.php
define('DEBUG_FORCE_TRANSLATE', 64 | DEBUG_TRANSLATE);
define('DEBUG_CLI', 128);
define('DEBUG_NO', 0);
define('DEBUG_DEVELOPER', 1);
define('DEBUG_TEMPLATES', 2);
define('DEBUG_OUTOFSERVICE', 4 | DEBUG_TEMPLATES);
define('DEBUG_TESTING', 8 | DEBUG_TEMPLATES);
define('DEBUG_SQLDEBUGGER', 16);
define('DEBUG_TRANSLATE', 32); // DEBUG_TEMPLATES added in common.inc.php
define('DEBUG_FORCE_TRANSLATE', 64 | DEBUG_TRANSLATE);
define('DEBUG_CLI', 128);
define('PHP_DEBUG_OFF', 0);
define('PHP_DEBUG_ON', 1);
define('PHP_DEBUG_SKIP', -1);
define('PHP_DEBUG_OFF', 0);
define('PHP_DEBUG_ON', 1);
define('PHP_DEBUG_SKIP', -1);
define('SAVE_COOKIE', 0);
define('SAVE_SESSION', 1);
define('SAVE_COOKIE', 0);
define('SAVE_SESSION', 1);
define('DB_MODE_FRAMEWORK', 0);
define('DB_MODE_BUSINESSLAYER', 1);
define('DB_MODE_USER', 2);
define('DB_DATE_FORMAT', '%Y-%m-%d %H:%M:%S');
?>
define('DB_MODE_FRAMEWORK', 0);
define('DB_MODE_BUSINESSLAYER', 1);
define('DB_MODE_USER', 2);
define('DB_DATE_FORMAT', '%Y-%m-%d %H:%M:%S');

View File

@@ -7,68 +7,65 @@
* Display some status information about the server and Opencaching
***************************************************************************/
$disable_verifyemail = true;
require('./lib2/web.inc.php');
$tpl->name = 'login';
$tpl->menuitem = MNU_LOGIN;
use \OpencachingDE\Auth\Login;
if (isset($_REQUEST['source']) && $opt['session']['login_statistics'])
{
sql("INSERT INTO `sys_login_stat` (`day`,`type`,`count`) VALUES (NOW(),'&1',1)
ON DUPLICATE KEY UPDATE `count`=`count`+1",
$_REQUEST['source']);
}
$disable_verifyemail = true;
require('./lib2/web.inc.php');
$tpl->name = 'login';
$tpl->menuitem = MNU_LOGIN;
$login->verify();
if (isset($_REQUEST['source']) && $opt['session']['login_statistics']) {
sql("INSERT INTO `sys_login_stat` (`day`,`type`,`count`) VALUES (NOW(),'&1',1)
ON DUPLICATE KEY UPDATE `count`=`count`+1",
$_REQUEST['source']);
}
$tpl->assign('error', LOGIN_OK);
$GLOBALS['container']->get('ocde.login')->verify();
$target = isset($_REQUEST['target']) ? $_REQUEST['target'] : 'myhome.php';
if (mb_strtolower(mb_substr($target, 0, 9)) == 'login.php')
$target = 'myhome.php';
$tpl->assign('error', Login::OK);
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; // Ocprop
$target = isset($_REQUEST['target']) ? $_REQUEST['target'] : 'myhome.php';
if (mb_strtolower(mb_substr($target, 0, 9)) == 'login.php') {
$target = 'myhome.php';
}
if ($action == 'cookieverify')
{
// we should be logged in ... check if cookie is set ...
if ($opt['session']['mode'] == SAVE_SESSION)
{
if (!isset($_REQUEST['SESSION']))
$tpl->error(ERROR_NO_COOKIES);
else
$tpl->redirect($target);
}
else
{
if (!isset($_COOKIE[$opt['session']['cookiename'] . 'data']))
$tpl->error(ERROR_NO_COOKIES);
else
$tpl->redirect($target);
}
}
else if ($action == 'logout')
{
$login->logout();
$tpl->assign('error', LOGIN_LOGOUT_OK);
}
else
{
if ($login->userid != 0)
$tpl->error(ERROR_ALREADY_LOGGEDIN);
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; // Ocprop
$username = isset($_POST['email']) ? $_POST['email'] : ''; // Ocprop
$password = isset($_POST['password']) ? $_POST['password'] : ''; // Ocprop
if ($action == 'cookieverify') {
// we should be logged in ... check if cookie is set ...
if ($opt['session']['mode'] == SAVE_SESSION) {
if (!isset($_REQUEST['SESSION'])) {
$tpl->error(ERROR_NO_COOKIES);
} else {
$tpl->redirect($target);
}
} else {
if (!isset($_COOKIE[$opt['session']['cookiename'] . 'data'])) {
$tpl->error(ERROR_NO_COOKIES);
} else {
$tpl->redirect($target);
}
}
} else if ($action == 'logout') {
$GLOBALS['container']->get('ocde.login')->logout();
$tpl->assign('error', Login::LOGOUT_OK);
} else {
if ($GLOBALS['container']->get('ocde.login')->getUserId() != 0) {
$tpl->error(ERROR_ALREADY_LOGGEDIN);
}
$retval = $login->try_login($username, $password, null);
$password = '';
if ($retval == LOGIN_OK)
$tpl->redirect('login.php?action=cookieverify&target=' . urlencode($target));
$username = isset($_POST['email']) ? $_POST['email'] : ''; // Ocprop
$password = isset($_POST['password']) ? $_POST['password'] : ''; // Ocprop
$tpl->assign('username', $username);
$tpl->assign('error', $retval);
}
$tpl->assign('target', $target);
$retval = $GLOBALS['container']->get('ocde.login')->tryLogin($username, $password, null);
$password = '';
if ($retval == Login::OK) {
$tpl->redirect('login.php?action=cookieverify&target=' . urlencode($target));
}
$tpl->display();
?>
$tpl->assign('username', $username);
$tpl->assign('error', $retval);
}
$tpl->assign('target', $target);
$tpl->display();

View File

@@ -10,21 +10,22 @@
$tpl->name = 'myhome';
$tpl->menuitem = MNU_MYPROFILE_OVERVIEW;
$login->verify();
if ($login->userid == 0)
{
$GLOBALS['container']->get('ocde.login')->verify();
if ($GLOBALS['container']->get('ocde.login')->getUserId() == 0) {
die('REDIR');
$tpl->redirect('login.php?target=myhome.php');
}
//get user record
$rsUser = sql("SELECT IFNULL(`stat_user`.`found`, 0) AS `found`, IFNULL(`stat_user`.`hidden`, 0) AS `hidden` FROM `user` LEFT JOIN `stat_user` ON `user`.`user_id`=`stat_user`.`user_id` WHERE `user`.`user_id`='&1' LIMIT 1", $login->userid);
$rsUser = sql("SELECT IFNULL(`stat_user`.`found`, 0) AS `found`, IFNULL(`stat_user`.`hidden`, 0) AS `hidden` FROM `user` LEFT JOIN `stat_user` ON `user`.`user_id`=`stat_user`.`user_id` WHERE `user`.`user_id`='&1' LIMIT 1", $GLOBALS['container']->get('ocde.login')->getUserId());
$rUser = sql_fetch_array($rsUser);
sql_free_result($rsUser);
$tpl->assign('found', $rUser['found']);
// locked/hidden caches are visible for the user and must be added to public stats
$rUser['hidden'] += sql_value("SELECT COUNT(*) FROM `caches` WHERE `user_id`='&1' AND `status`=7", 0, $login->userid);
$rUser['hidden'] += sql_value("SELECT COUNT(*) FROM `caches` WHERE `user_id`='&1' AND `status`=7", 0, $GLOBALS['container']->get('ocde.login')->getUserId());
$tpl->assign('hidden', $rUser['hidden']);
//get last logs
@@ -39,7 +40,7 @@
LEFT JOIN `cache_rating` ON `cache_rating`.`cache_id`=`caches`.`cache_id` AND `cache_rating`.`user_id`=`cache_logs`.`user_id` AND `cache_rating`.`rating_date`=`cache_logs`.`date`
WHERE `cache_logs`.`user_id`='&1'
ORDER BY `cache_logs`.`date` DESC, `cache_logs`.`date_created` DESC
LIMIT 10", $login->userid));
LIMIT 10", $GLOBALS['container']->get('ocde.login')->getUserId()));
$tpl->assign('morelogs', sql_value("SELECT FOUND_ROWS()", 0) > 10);
sql_foundrows_done();
@@ -60,7 +61,7 @@
AND `caches`.`status` != 5
GROUP BY `caches`.`cache_id`
ORDER BY `caches`.`date_hidden` DESC, `caches`.`date_created` DESC",
$login->userid));
$GLOBALS['container']->get('ocde.login')->getUserId()));
if ($useragent_msie && $useragent_msie_version < 9)
$tpl->assign('dotfill','');
else
@@ -72,11 +73,11 @@
FROM `caches`
WHERE `user_id`='&1'
AND `caches`.`status` = 5
ORDER BY `date_activate` DESC, `caches`.`date_created` DESC", $login->userid));
ORDER BY `date_activate` DESC, `caches`.`date_created` DESC", $GLOBALS['container']->get('ocde.login')->getUserId()));
// get number of sent emails
// useless information when email protocol is cleaned-up (cronjob 'purge_logs')
// $tpl->assign('emails', sql_value("SELECT COUNT(*) FROM `email_user` WHERE `from_user_id`='&1'", 0, $login->userid));
// $tpl->assign('emails', sql_value("SELECT COUNT(*) FROM `email_user` WHERE `from_user_id`='&1'", 0, $GLOBALS['container']->get('ocde.login')->getUserId()));
// get log pictures
$allpics = isset($_REQUEST['allpics']) && $_REQUEST['allpics'];

View File

@@ -27,7 +27,7 @@
// Run as system user, if possible.
// This is relevant e.g. for publishing and for auto-archiving caches.
if ($opt['logic']['systemuser']['user'] != '')
if (!$login->system_login($opt['logic']['systemuser']['user']))
if (!$GLOBALS['container']->get('ocde.login')->systemLogin($opt['logic']['systemuser']['user']))
die("ERROR: runcron system user login failed");
$modules_dir = $opt['rootpath'] . 'util2/cron/modules/';