X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmodules%2Fadmin.php;h=8b22bcb6821f4fa2fbaecdb6df6d617ea2e9674f;hp=43df3fa8de2b1ba35f439d1ad969b5ab0ebf5196;hb=0e269568bd666186509e98594e83bac199ac26da;hpb=64c8349613addc3da2242c5cd6b99d64e3fb5f8e diff --git a/inc/modules/admin.php b/inc/modules/admin.php index 43df3fa8de..8b22bcb682 100644 --- a/inc/modules/admin.php +++ b/inc/modules/admin.php @@ -45,7 +45,7 @@ if (!defined('__SECURITY')) { loadIncludeOnce('inc/modules/admin/admin-inc.php'); // Fix "deleted" cookies in PHP4 (PHP5 does remove them, PHP4 sets them to deleted!) -fixDeletedCookies(array('admin_login', 'admin_md5', 'admin_last', 'admin_to')); +fixDeletedCookies(array('admin_login', 'admin_md5', 'admin_last')); // Init return value $ret = 'init'; @@ -53,13 +53,13 @@ $ret = 'init'; // Is no admin registered? if (!isAdminRegistered()) { // Admin is not registered so we have to inform the user - if ((isFormSent()) && ((!isPostRequestElementSet('login')) || (!isPostRequestElementSet('pass')) || (strlen(postRequestElement('pass')) < 4))) { + if ((isFormSent()) && ((!isPostRequestElementSet('login')) || (!isPostRequestElementSet('pass1')) || (strlen(postRequestElement('pass1')) < 4) || (!isPostRequestElementSet('pass2')) || (strlen(postRequestElement('pass2')) < 4) || (postRequestElement('pass1') != postRequestElement('pass2')))) { setRequestPostElement('ok', '***'); } // END - if if ((isFormSent()) && (postRequestElement('ok') != '***')) { // Hash the password with the old function because we are here in install mode - $hashedPass = md5(postRequestElement('pass')); + $hashedPass = md5(postRequestElement('pass1')); // Kill maybe existing session variables destroyAdminSession(false); @@ -79,37 +79,24 @@ if (!isAdminRegistered()) { } break; - case 'failed': + case 'failed': // Registration has failed $ret = getMessage('ADMIN_REGISTER_FAILED'); break; - case 'already': - default: - if ($ret == 'already') { - // Admin does already exists! - $ret = getMessage('ADMIN_LOGIN_ALREADY_REG'); - } else { - // Any other kind will be logged and interpreted as 'done' - logDebugMessage(__FILE__, __LINE__, sprintf("Unknown return code %s from ifAdminLoginDataIsValid() and interpreted as 'done'!", $ret)); - // @TODO Why is this set to 'done'? - $ret = 'done'; - } - - // Admin still not registered? - if (!isAdminRegistered()) { - // Write to config that registration is done - changeDataInFile(getConfig('CACHE_PATH') . 'config-local.php', 'ADMIN-SETUP', "setConfigEntry('ADMIN_REGISTERED', '", "');", 'Y', 0); + case 'already': // Admin does already exists! + $ret = getMessage('ADMIN_LOGIN_ALREADY_REG'); + break; - // Load URL for login - redirectToUrl('modules.php?module=admin'); - } // END - if + default: + // Any other kind will be logged + logDebugMessage(__FILE__, __LINE__, sprintf("Unknown return code %s from ifAdminLoginDataIsValid().", $ret)); break; } // END - switch - } + } // END - if // Whas that action okay? if ($ret != 'done') { - // Fixes another notice + // Init login name $content['login'] = ''; if (isPostRequestElementSet('login')) { $content['login'] = postRequestElement('login'); @@ -117,28 +104,41 @@ if (!isAdminRegistered()) { // Init array elements $content['login_message'] = ''; - $content['pass_message'] = ''; + $content['pass1_message'] = ''; + $content['pass2_message'] = ''; // Yet-another notice-fix if ((isFormSent()) && (postRequestElement('ok') == '***')) { + // Init variables + $loginMessage = ''; + $pass1Message = ''; + $pass2Message = ''; + // No login entered? - if (!isPostRequestElementSet('login')) $loginMessage = getMessage('ADMIN_NO_LOGIN'); + if (empty($content['login'])) $loginMessage = getMessage('ADMIN_NO_LOGIN'); // An error comes back from registration? - if (!empty($ret)) $loginMessage = $ret; + if ((!empty($ret)) && ($ret != 'init')) $loginMessage = $ret; - // No password entered? - if (!isPostRequestElementSet('pass')) $passwdMessage = getMessage('ADMIN_NO_PASS'); + // No password 1 entered or to short? + if (!isPostRequestElementSet('pass1')) $pass1Message = getMessage('ADMIN_NO_PASS1'); + elseif (strlen(postRequestElement('pass1')) < 4) $pass1Message = getMessage('ADMIN_SHORT_PASS1'); - // Or password too short? - if (strlen(postRequestElement('pass')) < 4) $passwdMessage = getMessage('ADMIN_SHORT_PASS'); + // No password 2 entered or to short? + if (!isPostRequestElementSet('pass2')) $pass2Message = getMessage('ADMIN_NO_PASS2'); + elseif (strlen(postRequestElement('pass2')) < 4) $pass2Message = getMessage('ADMIN_SHORT_PASS2'); + + // Both didn't match? + if (postRequestElement('pass1') != postRequestElement('pass2')) { + // No match + if (empty($pass1Message)) $pass1Message = getMessage('ADMIN_PASS1_MISMATCH'); + if (empty($pass2Message)) $pass2Message = getMessage('ADMIN_PASS2_MISMATCH'); + } // END - if // Output error messages $content['login_message'] = loadTemplate('admin_login_msg', true, $loginMessage); - $content['pass_message'] = loadTemplate('admin_login_msg', true, $passwdMessage); - - // Reset variables - $loginMessage = ''; $passwdMessage = ''; + $content['pass1_message'] = loadTemplate('admin_login_msg', true, $pass1Message); + $content['pass2_message'] = loadTemplate('admin_login_msg', true, $pass2Message); } // END - if // Output message in seperate template @@ -163,8 +163,8 @@ if (!isAdminRegistered()) { if ($valid === true) { // Prepare content first $content = array( - 'hash' => SQL_ESCAPE(postRequestElement('hash')), - 'login' => SQL_ESCAPE(postRequestElement('login')) + 'hash' => secureString(postRequestElement('hash')), + 'login' => secureString(postRequestElement('login')) ); // Validation okay so display form for final password change @@ -186,9 +186,9 @@ if (!isAdminRegistered()) { // Output reset password form loadTemplate('admin_send_reset_link'); } -} elseif ((!isSessionVariableSet('admin_login')) || (!isSessionVariableSet('admin_md5')) || (!isSessionVariableSet('admin_last')) || (!isSessionVariableSet('admin_to')) || ((getSession('admin_last') + bigintval(getSession('admin_to')) * 3600 * 24) < time())) { +} elseif ((!isSessionVariableSet('admin_login')) || (!isSessionVariableSet('admin_md5')) || (!isSessionVariableSet('admin_last'))) { // At leat one administrator account was created - if ((isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5')) && (isSessionVariableSet('admin_last')) && (isSessionVariableSet('admin_to'))) { + if ((isSessionVariableSet('admin_login')) && (isSessionVariableSet('admin_md5')) && (isSessionVariableSet('admin_last'))) { // Timeout for last login, we have to logout first! redirectToUrl('modules.php?module=admin&logout=1'); } // END - if @@ -229,7 +229,7 @@ if (!isAdminRegistered()) { case '404': // Administrator login not found setRequestPostElement('ok', $ret); - $ret = getMessage('ADMIN_404'); + $ret = sprintf(getMessage('ADMIN_404'), postRequestElement('login')); destroyAdminSession(); break; @@ -337,11 +337,12 @@ if (!isAdminRegistered()) { } else { // Maybe an Admin want's to login? $ret = ifAdminCookiesAreValid(getSession('admin_login'), getSession('admin_md5')); - switch ($ret) - { + + // Check status + switch ($ret) { case 'done': // Check for access control line of current menu entry - $GLOBALS['acl_allow'] = runFilterChain('check_admin_acl'); + runFilterChain('check_admin_acl'); // When type of admin menu is not set fallback to old menu system if (!isConfigEntrySet('admin_menu')) setConfigEntry('admin_menu', 'OLD'); @@ -358,30 +359,30 @@ if (!isAdminRegistered()) { loadIncludeOnce('inc/modules/admin/lasys-inc.php'); // Create new-style menu system will logical areas - ADMIN_LOGICAL_AREA_SYSTEM($area, $action, getWhat()); + doAdminLogicalArea($area, $action, getWhat()); } else { // This little call constructs the whole default old and lacky menu system // on left side. It also renders the content on right side - doAdminAction(getWhat()); + doAdminAction(); } break; case '404': // Administrator login not found setRequestPostElement('ok', $ret); + loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_404'), getSession('admin_login'))); destroyAdminSession(); - addFatalMessage(__FILE__, __LINE__, getMessage('ADMIN_404')); break; case 'pass': // Wrong password setRequestPostElement('ok', $ret); + loadTemplate('admin_settings_saved', false, getMessage('WRONG_PASS')); destroyAdminSession(); - addFatalMessage(__FILE__, __LINE__, getMessage('WRONG_PASS')); break; default: // Others will be logged logDebugMessage(__FILE__, __LINE__, sprintf("Unknown return code %s from ifAdminCookiesAreValid()", $ret)); break; - } + } // END - switch } // [EOF]