]> git.mxchange.org Git - mailer.git/blobdiff - inc/modules/admin.php
Installation improved, first login:
[mailer.git] / inc / modules / admin.php
index 43df3fa8de2b1ba35f439d1ad969b5ab0ebf5196..8b22bcb6821f4fa2fbaecdb6df6d617ea2e9674f 100644 (file)
@@ -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&amp;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]