diff --git a/backend.php b/backend.php index 1c7b3ffb..8220337a 100644 --- a/backend.php +++ b/backend.php @@ -50,14 +50,7 @@ init_connection($link); - $method = strtolower($_REQUEST["method"]); - $mode = $_REQUEST["mode"]; - - /* if ((!$op || $op == "rss" || $op == "dlg") && !$_REQUEST["noxml"]) { - header("Content-Type: application/xml; charset=utf-8"); - } else { - header("Content-Type: text/plain; charset=utf-8"); - } */ + $method = $_REQUEST['subop'] ? $_REQUEST['subop'] : $_REQUEST["method"]; header("Content-Type: text/plain; charset=utf-8"); @@ -78,7 +71,7 @@ return; } else if (!($_SESSION["uid"] && validate_session($link))) { - if ($op == 'pref-feeds' && $_REQUEST['method'] == 'add') { + if ($op == 'pref-feeds' && $method == 'add') { header("Content-Type: text/html"); login_sequence($link); render_login_form($link); @@ -173,11 +166,6 @@ module_pref_labels($link); break; // pref-labels - case "pref-prefs": - require_once "modules/pref-prefs.php"; - module_pref_prefs($link); - break; // pref-prefs - case "pref-users": require_once "modules/pref-users.php"; module_pref_users($link); diff --git a/classes/pref_prefs.php b/classes/pref_prefs.php new file mode 100644 index 00000000..89626827 --- /dev/null +++ b/classes/pref_prefs.php @@ -0,0 +1,493 @@ +link, "SELECT id FROM ttrss_users WHERE + id = '$active_uid' AND (pwd_hash = '$old_pw_hash1' OR + pwd_hash = '$old_pw_hash2')"); + + if (db_num_rows($result) == 1) { + db_query($this->link, "UPDATE ttrss_users SET pwd_hash = '$new_pw_hash' + WHERE id = '$active_uid'"); + + $_SESSION["pwd_hash"] = $new_pw_hash; + + print __("Password has been changed."); + } else { + print "ERROR: ".__('Old password is incorrect.'); + } + } + + return; + + } + + function saveconfig() { + + $_SESSION["prefs_cache"] = false; + + $orig_theme = get_pref($this->link, "_THEME_ID"); + + foreach (array_keys($_POST) as $pref_name) { + + $pref_name = db_escape_string($pref_name); + $value = db_escape_string($_POST[$pref_name]); + + set_pref($this->link, $pref_name, $value); + + } + + if ($orig_theme != get_pref($this->link, "_THEME_ID")) { + print "PREFS_THEME_CHANGED"; + } else { + print __("The configuration was saved."); + } + } + + function getHelp() { + + $pref_name = db_escape_string($_REQUEST["pn"]); + + $result = db_query($this->link, "SELECT help_text FROM ttrss_prefs + WHERE pref_name = '$pref_name'"); + + if (db_num_rows($result) > 0) { + $help_text = db_fetch_result($result, 0, "help_text"); + print $help_text; + } else { + printf(__("Unknown option: %s"), $pref_name); + } + } + + function changeemail() { + + $email = db_escape_string($_POST["email"]); + $full_name = db_escape_string($_POST["full_name"]); + + $active_uid = $_SESSION["uid"]; + + db_query($this->link, "UPDATE ttrss_users SET email = '$email', + full_name = '$full_name' WHERE id = '$active_uid'"); + + print __("Your personal data has been saved."); + + return; + } + + function resetconfig() { + + $_SESSION["prefs_op_result"] = "reset-to-defaults"; + + if ($_SESSION["profile"]) { + $profile_qpart = "profile = '" . $_SESSION["profile"] . "'"; + } else { + $profile_qpart = "profile IS NULL"; + } + + db_query($this->link, "DELETE FROM ttrss_user_prefs + WHERE $profile_qpart AND owner_uid = ".$_SESSION["uid"]); + + initialize_user_prefs($this->link, $_SESSION["uid"], $_SESSION["profile"]); + + print "PREFS_THEME_CHANGED"; + } + + function index() { + + global $access_level_names; + + $prefs_blacklist = array("HIDE_READ_FEEDS", "FEEDS_SORT_BY_UNREAD", + "STRIP_UNSAFE_TAGS"); + + $profile_blacklist = array("ALLOW_DUPLICATE_POSTS", "PURGE_OLD_DAYS", + "PURGE_UNREAD_ARTICLES", "DIGEST_ENABLE", "DIGEST_CATCHUP", + "BLACKLISTED_TAGS", "ENABLE_API_ACCESS", "UPDATE_POST_ON_CHECKSUM_CHANGE", + "DEFAULT_UPDATE_INTERVAL", "USER_TIMEZONE", "SORT_HEADLINES_BY_FEED_DATE", + "SSL_CERT_SERIAL"); + + + if (!SINGLE_USER_MODE) { + + $_SESSION["prefs_op_result"] = ""; + + print "