X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmodules%2Fadmin.php;h=f72adf4b19c0210b9ef798cc2828c5ba1df85e33;hb=0226aea588ae0b433e4c2c17b23f79885c2d0da5;hp=a117d14b8970864db74e0f9614b4f0a2520fa90e;hpb=c67165a2e80230515a0c0897ee53bb177f7d88dd;p=mailer.git diff --git a/inc/modules/admin.php b/inc/modules/admin.php index a117d14b89..f72adf4b19 100644 --- a/inc/modules/admin.php +++ b/inc/modules/admin.php @@ -32,7 +32,7 @@ ************************************************************************/ // Some security stuff... -if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) { +if (!defined('__SECURITY')) { $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; require($INC); } @@ -41,14 +41,18 @@ if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) { if ((empty($GLOBALS['action'])) && ($check == "admin_only")) { // Redirect to right URL LOAD_URL("modules.php?module=admin&action=login"); -} +} // END - if // Load include file -require_once(PATH."inc/modules/admin/admin-inc.php"); +LOAD_INC_ONCE("inc/modules/admin/admin-inc.php"); // Fix "deleted" cookies in PHP4 (PHP5 does remove them, PHP4 sets them to deleted!) FIX_DELETED_COOKIES(array('admin_login', 'admin_md5', 'admin_last', 'admin_to')); +// Init return value +$ret = "init"; + +// Is no admin registered? if (!isBooleanConstantAndTrue('admin_registered')) { // Admin is not registered so we have to inform the user if ((isset($_POST['ok'])) && ((empty($_POST['login'])) || (empty($_POST['pass'])) || (strlen($_POST['pass']) < 4))) $_POST['ok'] = "***"; @@ -57,47 +61,46 @@ if (!isBooleanConstantAndTrue('admin_registered')) { $hashedPass = md5($_POST['pass']); // Kill maybe existing session variables - set_session('admin_login' , ""); - set_session('admin_md5' , ""); - set_session('admin_last' , ""); - set_session('admin_to' , ""); + destroyAdminSession(false); // Do registration $ret = REGISTER_ADMIN($_POST['login'], $hashedPass); switch ($ret) { case "done": - admin_WriteData(PATH."inc/config.php", "ADMIN-SETUP", "define('admin_registered', ", ");", "true", 0); - if (!_FATAL) { + changeDataInFile(constant('PATH')."inc/config.php", "ADMIN-SETUP", "define('admin_registered', ", ");", "true", 0); + if (!constant('_FATAL')) { // Registering is done - LOAD_URL(URL."/modules.php?module=admin&action=login®ister=done"); + LOAD_URL("modules.php?module=admin&action=login®ister=done"); } else { - $ret = ADMIN_CANNOT_COMPLETE; + $ret = getMessage('ADMIN_CANNOT_COMPLETE'); } break; case "failed": - $ret = ADMIN_REGISTER_FAILED; + $ret = getMessage('ADMIN_REGISTER_FAILED'); break; case "already": default: if ($ret == "already") { // Admin does already exists! - $ret = ADMIN_LOGIN_ALREADY_REG; + $ret = getMessage('ADMIN_LOGIN_ALREADY_REG'); } else { - // Any other kind + // Any other kind will be logged and interpreted as 'done' + DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown return code %s from CHECK_ADMIN_LOGIN()", $ret)); + // @TODO Why is this set to 'done'? $ret = "done"; } + // Admin still not registered? if (!isBooleanConstantAndTrue('admin_registered')) { // Write to config that registration is done - admin_WriteData(PATH."inc/config.php", "ADMIN-SETUP", "define('admin_registered', ", ");", "true", 0); + changeDataInFile(constant('PATH')."inc/config.php", "ADMIN-SETUP", "define('admin_registered', ", ");", "true", 0); // Load URL for login - $URL = URL."/modules.php?module=admin&action=login"; - LOAD_URL($URL); - } + LOAD_URL("modules.php?module=admin&action=login"); + } // END - if break; } } @@ -114,16 +117,16 @@ if (!isBooleanConstantAndTrue('admin_registered')) { // Yet-another "Notice" fix if ((!empty($_POST['ok'])) && ($_POST['ok'] == "***")) { // No login entered? - if (empty($_POST['login'])) $MSG1 = ADMIN_NO_LOGIN; + if (empty($_POST['login'])) $MSG1 = getMessage('ADMIN_NO_LOGIN'); // An error comes back from registration? if (!empty($ret)) $MSG1 = $ret; // No password entered? - if (empty($_POST['pass'])) $MSG2 = ADMIN_NO_PASS; + if (empty($_POST['pass'])) $MSG2 = getMessage('ADMIN_NO_PASS'); // Or password too short? - if (strlen($_POST['pass']) < 4) $MSG2 = ADMIN_SHORT_PASS; + if (strlen($_POST['pass']) < 4) $MSG2 = getMessage('ADMIN_SHORT_PASS'); // Output error messages define('__MSG_LOGIN', LOAD_TEMPLATE("admin_login_msg", true, $MSG1)); @@ -156,7 +159,7 @@ if (!isBooleanConstantAndTrue('admin_registered')) { $valid = ADMIN_VALIDATE_RESET_LINK_HASH_LOGIN($_POST['hash'], $_POST['login']); // Valid? - if ($valid) { + if ($valid === true) { // Prepare content first $content = array( 'hash' => SQL_ESCAPE($_POST['hash']), @@ -167,7 +170,7 @@ if (!isBooleanConstantAndTrue('admin_registered')) { LOAD_TEMPLATE("admin_reset_password_form", false, $content); } else { // Cannot validate the login data and hash - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_VALIDATION_RESET_LOGIN_HASH_FAILED); + LOAD_TEMPLATE("admin_settings_saved", false, getMessage('ADMIN_VALIDATION_RESET_LOGIN_HASH_FAILED')); } } elseif ((isset($_POST['reset_pass'])) && (!empty($_POST['hash'])) && (!empty($_POST['login'])) && (!empty($_POST['pass1'])) && ($_POST['pass1'] == $_POST['pass2'])) { // Okay, we shall the admin password here. So first revalidate the hash @@ -179,7 +182,7 @@ if (!isBooleanConstantAndTrue('admin_registered')) { LOAD_TEMPLATE("admin_reset_pass_done", false, $OUT); } else { // Validation failed - LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_VALIDATION_RESET_LOGIN_HASH_FAILED2); + LOAD_TEMPLATE("admin_settings_saved", false, getMessage('ADMIN_VALIDATION_RESET_LOGIN_HASH_FAILED2')); } } else { // Output reset password form @@ -189,30 +192,31 @@ if (!isBooleanConstantAndTrue('admin_registered')) { // At leat one administrator account was created if ((isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5')) && (isSessionVariableSet('admin_last')) && (isSessionVariableSet('admin_to'))) { // Timeout for last login, we have to logout first! - $URL = URL."/modules.php?module=admin&action=login&logout=1"; - LOAD_URL($URL); - } + LOAD_URL("modules.php?module=admin&action=login&logout=1"); + } // END - if + if (!empty($_GET['register'])) { // Registration of first admin is done - if ($_GET['register'] == "done") OUTPUT_HTML("".ADMIN_REGISTER_DONE.""); + if ($_GET['register'] == "done") LOAD_TEMPLATE("admin_settings_saved", false, getMessage('ADMIN_REGISTER_DONE')); } // END - if // Check if the admin has submitted data or not - $ret = ""; if ((isset($_POST['ok'])) && ((empty($_POST['login'])) || (empty($_POST['pass'])) || (strlen($_POST['pass']) < 4))) $_POST['ok'] = "***"; if ((isset($_POST['ok'])) && ($_POST['ok'] != "***")) { // All required data was entered so we check his account $ret = CHECK_ADMIN_LOGIN($_POST['login'], $_POST['pass']); + + // Which status do we have? switch ($ret) { case "done": // Admin and password are okay, so we log in now // Construct URL and redirect - $URL = URL."/modules.php?module=admin&"; + $URL = "modules.php?module=admin&"; // Rewrite overview module if ($GLOBALS['what'] == "overview") { $GLOBALS['action'] = GET_ACTION($GLOBALS['module'], $GLOBALS['what']); - } + } // END - if // Add data to URL if (!empty($GLOBALS['what'])) $URL .= "what=".$GLOBALS['what']; @@ -225,15 +229,23 @@ if (!isBooleanConstantAndTrue('admin_registered')) { case "404": // Administrator login not found $_POST['ok'] = $ret; - $ret = ADMIN_NOT_FOUND; + $ret = getMessage('ADMIN_NOT_FOUND'); + destroyAdminSession(); break; case "pass": // Wrong password $_POST['ok'] = $ret; - $ret = WRONG_PASS." [".ADMIN_RESET_PASS."]\n"; + $ret = "{--WRONG_PASS--} [{--ADMIN_RESET_PASS--}]\n"; + destroyAdminSession(); break; - } - } + + default: // Others will be logged + DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown return code %s from CHECK_ADMIN_LOGIN()", $ret)); + break; + } // END - switch + } // END - if + + // Error detected? if ($ret != "done") { if (!empty($_POST['login'])) { define('__LOGIN_VALUE', $_POST['login']); @@ -243,19 +255,19 @@ if (!isBooleanConstantAndTrue('admin_registered')) { if (isset($_POST['ok'])) { // Set messages to zero - $MSG1 = ""; $MSG2 = ""; + // No login entered? - if (empty($_POST['login'])) $MSG1 = ADMIN_NO_LOGIN; + if (empty($_POST['login'])) $MSG1 = getMessage('ADMIN_NO_LOGIN'); // An error comes back from login? if ((!empty($ret)) && ($_POST['ok'] == "404")) $MSG1 = $ret; // No password entered? - if (empty($_POST['pass'])) $MSG2 = ADMIN_NO_PASS; + if (empty($_POST['pass'])) $MSG2 = getMessage('ADMIN_NO_PASS'); // Or password too short? - if (strlen($_POST['pass']) < 4) $MSG2 = ADMIN_SHORT_PASS; + if (strlen($_POST['pass']) < 4) $MSG2 = getMessage('ADMIN_SHORT_PASS'); // An error comes back from login? if ((!empty($ret)) && ($_POST['ok'] == "pass")) $MSG2 = $ret; @@ -294,19 +306,10 @@ if (!isBooleanConstantAndTrue('admin_registered')) { // Load login form template LOAD_TEMPLATE("admin_login_form", false, $content); - } + } // END - if } elseif (isset($_GET['logout'])) { // Only try to remove cookies - if (set_session("admin_login", "") && set_session("admin_md5", "") && set_session("admin_last", "") && set_session("admin_to", "")) { - // Also remove array elements - set_session('admin_login', ""); - set_session('admin_md5' , ""); - set_session('admin_last' , ""); - set_session('admin_to' , ""); - - // Destroy session - @session_destroy(); - + if (destroyAdminSession()) { // Load logout template if (isset($_GET['register'])) { // Secure input @@ -326,10 +329,10 @@ if (!isBooleanConstantAndTrue('admin_registered')) { } } else { // Something went wrong here... - OUTPUT_HTML("".ADMIN_LOGOUT_FAILED.""); + LOAD_TEMPLATE("admin_settings_saved", false, "