ini_set('display_errors', 0);
                ini_set('display_startup_errors', 0);
                ini_set('log_errors', 1);
                //ini_set('error_reporting', 0); // Default
            } else {
                define('OBS_DEBUG', 1);
            }
        }
        $permissions = permissions_cache($_SESSION['user_id']);
        // Add feeds & api keys after first auth
        if ($mcrypt_exists && !get_user_pref($_SESSION['user_id'], 'atom_key')) {
            // Generate unique token
            do {
                $atom_key = md5(strgen());
            } while (dbFetchCell("SELECT COUNT(*) FROM `users_prefs` WHERE `pref` = ? AND `value` = ?;", array('atom_key', $atom_key)) > 0);
            set_user_pref($_SESSION['user_id'], 'atom_key', $atom_key);
        }
    }
    if ($auth_success) {
        // If just logged in go to request uri, unless we're debugging, in which case we want to see authentication module output first.
        if (!OBS_DEBUG) {
            header("Location: " . $_SERVER['REQUEST_URI']);
        } else {
            print_message("Debugging mode has disabled redirect to front page; please click <a href=\"" . $_SERVER['REQUEST_URI'] . "\">here</a> to continue.");
        }
        exit;
    }
}
///r($_SESSION);
///r($_COOKIE);
///r($permissions);
unset($prefs);
if (is_numeric($_SESSION['user_id'])) {
    $user_id = $_SESSION['user_id'];
    $prefs = get_user_prefs($user_id);
    // Reset RSS/Atom key
    if ($vars['atom_key'] == "toggle") {
        if (set_user_pref($user_id, 'atom_key', md5(strgen()))) {
            print_success('RSS/Atom key updated.');
            $prefs = get_user_prefs($user_id);
        } else {
            print_error('Error generating RSS/Atom key.');
        }
    }
    // Reset API key
    if ($vars['api_key'] == "toggle") {
        if (set_user_pref($user_id, 'api_key', md5(strgen()))) {
            print_success('API key updated.');
            $prefs = get_user_prefs($user_id);
        } else {
            print_error('Error generating API key.');
        }
    }
}
$atom_key_updated = isset($prefs['atom_key']['updated']) ? formatUptime(time() - strtotime($prefs['atom_key']['updated']), 'shorter') . ' ago' : 'Never';
$api_key_updated = isset($prefs['api_key']['updated']) ? formatUptime(time() - strtotime($prefs['api_key']['updated']), 'shorter') . ' ago' : 'Never';
$filename = $config['html_dir'] . '/pages/preferences/' . $vars['section'] . '.inc.php';
if (is_file($filename)) {
    $vars = get_vars('POST');
    // Note, on edit pages use only method POST!
    include $filename;
} else {
         dbInsert(array('user_encpass' => $encpass, 'expire' => $lifetime, 'username' => $_SESSION['username'], 'user_uniq' => $user_unique_id, 'user_ckey' => $ckey), 'users_ckeys');
         setcookie("ckey", $ckey, $lifetime, $cookie_path, $cookie_domain, $cookie_https, $cookie_httponly);
         setcookie("dkey", $dkey, $lifetime, $cookie_path, $cookie_domain, $cookie_https, $cookie_httponly);
         unset($_SESSION['user_ckey_id']);
     }
 }
 // Retrieve user ID and permissions
 if ($_SESSION['authenticated']) {
     if (!is_numeric($_SESSION['userlevel']) || !is_numeric($_SESSION['user_id'])) {
         $_SESSION['userlevel'] = auth_user_level($_SESSION['username']);
         $_SESSION['user_id'] = auth_user_id($_SESSION['username']);
     }
     $permissions = permissions_cache($_SESSION['user_id']);
     // Add feeds & api keys after first auth
     if ($mcrypt_exists && !get_user_pref($_SESSION['user_id'], 'atom_key')) {
         set_user_pref($_SESSION['user_id'], 'atom_key', md5(strgen()));
     }
 } else {
     if (isset($_SESSION['username'])) {
         $auth_message = "认证失败";
         //dbInsert(array('user' => $_SESSION['username'], 'address' => $_SERVER["REMOTE_ADDR"], 'result' => 'Authentication Failure'), 'authlog');
         session_logout(function_exists('auth_require_login'));
     }
 }
 if ($config['auth_mechanism'] != 'ldap') {
     // Duh.. for LDAP still need store password :(
     unset($_SESSION['password']);
     // Remove password so that it's not saved in $_SESSION in plaintext on the disk.
 }
 if ($auth_success) {
     // If just logged in go to request uri