]> git.wh0rd.org - tt-rss.git/blobdiff - classes/pref/prefs.php
make pluginhost a singleton
[tt-rss.git] / classes / pref / prefs.php
index 8e8abb5ebb1da7db121db6e9ddbfc6dae6159e73..b2e7edf03d8797ec403a653ed20624ed7a0ff922 100644 (file)
@@ -79,8 +79,7 @@ class Pref_Prefs extends Handler_Protected {
                        return;
                }
 
-               global $pluginhost;
-               $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
+               $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
 
                if (method_exists($authenticator, "change_password")) {
                        print $authenticator->change_password($_SESSION["uid"], $old_pw, $new_pw);
@@ -90,9 +89,6 @@ class Pref_Prefs extends Handler_Protected {
        }
 
        function saveconfig() {
-
-               $_SESSION["prefs_cache"] = false;
-
                $boolean_prefs = explode(",", $_POST["boolean_prefs"]);
 
                foreach ($boolean_prefs as $pref) {
@@ -103,13 +99,13 @@ class Pref_Prefs extends Handler_Protected {
 
                foreach (array_keys($_POST) as $pref_name) {
 
-                       $pref_name = db_escape_string($pref_name);
-                       $value = db_escape_string($_POST[$pref_name]);
+                       $pref_name = $this->dbh->escape_string($pref_name);
+                       $value = $this->dbh->escape_string($_POST[$pref_name]);
 
                        if ($pref_name == 'DIGEST_PREFERRED_TIME') {
                                if (get_pref('DIGEST_PREFERRED_TIME') != $value) {
 
-                                       db_query("UPDATE ttrss_users SET
+                                       $this->dbh->query("UPDATE ttrss_users SET
                                                last_digest_sent = NULL WHERE id = " . $_SESSION['uid']);
 
                                }
@@ -138,13 +134,13 @@ class Pref_Prefs extends Handler_Protected {
 
        function getHelp() {
 
-               $pref_name = db_escape_string($_REQUEST["pn"]);
+               $pref_name = $this->dbh->escape_string($_REQUEST["pn"]);
 
-               $result = db_query("SELECT help_text FROM ttrss_prefs
+               $result = $this->dbh->query("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");
+               if ($this->dbh->num_rows($result) > 0) {
+                       $help_text = $this->dbh->fetch_result($result, 0, "help_text");
                        print $help_text;
                } else {
                        printf(__("Unknown option: %s"), $pref_name);
@@ -153,12 +149,12 @@ class Pref_Prefs extends Handler_Protected {
 
        function changeemail() {
 
-               $email = db_escape_string($_POST["email"]);
-               $full_name = db_escape_string($_POST["full_name"]);
+               $email = $this->dbh->escape_string($_POST["email"]);
+               $full_name = $this->dbh->escape_string($_POST["full_name"]);
 
                $active_uid = $_SESSION["uid"];
 
-               db_query("UPDATE ttrss_users SET email = '$email',
+               $this->dbh->query("UPDATE ttrss_users SET email = '$email',
                        full_name = '$full_name' WHERE id = '$active_uid'");
 
                print __("Your personal data has been saved.");
@@ -176,7 +172,7 @@ class Pref_Prefs extends Handler_Protected {
                        $profile_qpart = "profile IS NULL";
                }
 
-               db_query("DELETE FROM ttrss_user_prefs
+               $this->dbh->query("DELETE FROM ttrss_user_prefs
                        WHERE $profile_qpart AND owner_uid = ".$_SESSION["uid"]);
 
                initialize_user_prefs($_SESSION["uid"], $_SESSION["profile"]);
@@ -225,13 +221,13 @@ class Pref_Prefs extends Handler_Protected {
 
                print "<h2>" . __("Personal data") . "</h2>";
 
-               $result = db_query("SELECT email,full_name,otp_enabled,
+               $result = $this->dbh->query("SELECT email,full_name,otp_enabled,
                        access_level FROM ttrss_users
                        WHERE id = ".$_SESSION["uid"]);
 
-               $email = htmlspecialchars(db_fetch_result($result, 0, "email"));
-               $full_name = htmlspecialchars(db_fetch_result($result, 0, "full_name"));
-               $otp_enabled = sql_bool_to_bool(db_fetch_result($result, 0, "otp_enabled"));
+               $email = htmlspecialchars($this->dbh->fetch_result($result, 0, "email"));
+               $full_name = htmlspecialchars($this->dbh->fetch_result($result, 0, "full_name"));
+               $otp_enabled = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "otp_enabled"));
 
                print "<tr><td width=\"40%\">".__('Full name')."</td>";
                print "<td class=\"prefValue\"><input dojoType=\"dijit.form.ValidationTextBox\" name=\"full_name\" required=\"1\"
@@ -242,7 +238,7 @@ class Pref_Prefs extends Handler_Protected {
 
                if (!SINGLE_USER_MODE && !$_SESSION["hide_hello"]) {
 
-                       $access_level = db_fetch_result($result, 0, "access_level");
+                       $access_level = $this->dbh->fetch_result($result, 0, "access_level");
                        print "<tr><td width=\"40%\">".__('Access level')."</td>";
                        print "<td>" . $access_level_names[$access_level] . "</td></tr>";
                }
@@ -258,10 +254,7 @@ class Pref_Prefs extends Handler_Protected {
                print "</form>";
 
                if ($_SESSION["auth_module"]) {
-                       global $pluginhost;
-
-                       $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
-
+                       $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
                } else {
                        $authenticator = false;
                }
@@ -270,11 +263,11 @@ class Pref_Prefs extends Handler_Protected {
 
                        print "<h2>" . __("Password") . "</h2>";
 
-                       $result = db_query("SELECT id FROM ttrss_users
+                       $result = $this->dbh->query("SELECT id FROM ttrss_users
                                WHERE id = ".$_SESSION["uid"]." AND pwd_hash
                                = 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8'");
 
-                       if (db_num_rows($result) != 0) {
+                       if ($this->dbh->num_rows($result) != 0) {
                                print format_warning(__("Your password is at default value, please change it."), "default_pass_warning");
                        }
 
@@ -439,8 +432,7 @@ class Pref_Prefs extends Handler_Protected {
                        }
                }
 
-               global $pluginhost;
-               $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+               PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
                        "hook_prefs_tab_section", "prefPrefsAuth");
 
                print "</div>"; #pane
@@ -494,7 +486,7 @@ class Pref_Prefs extends Handler_Protected {
 
                $access_query = 'true';
 
-               $result = db_query("SELECT DISTINCT
+               $result = $this->dbh->query("SELECT DISTINCT
                        ttrss_user_prefs.pref_name,value,type_name,
                        ttrss_prefs_sections.order_id,
                        def_value,section_id
@@ -513,7 +505,7 @@ class Pref_Prefs extends Handler_Protected {
 
                $listed_boolean_prefs = array();
 
-               while ($line = db_fetch_assoc($result)) {
+               while ($line = $this->dbh->fetch_assoc($result)) {
 
                        if (in_array($line["pref_name"], $prefs_blacklist)) {
                                continue;
@@ -678,8 +670,7 @@ class Pref_Prefs extends Handler_Protected {
 
                print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"boolean_prefs\" value=\"$listed_boolean_prefs\">";
 
-               global $pluginhost;
-               $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+               PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
                        "hook_prefs_tab_section", "prefPrefsPrefsInside");
 
                print '</div>'; # inside pane
@@ -715,8 +706,7 @@ class Pref_Prefs extends Handler_Protected {
                                <label for='prefs_show_advanced'>" .
                                __("Show additional preferences") . "</label>"; */
 
-               global $pluginhost;
-               $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB_SECTION,
+               PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB_SECTION,
                        "hook_prefs_tab_section", "prefPrefsPrefsOutside");
 
                print "</form>";
@@ -880,8 +870,7 @@ class Pref_Prefs extends Handler_Protected {
 
                print "</div>"; #pane
 
-               global $pluginhost;
-               $pluginhost->run_hooks($pluginhost::HOOK_PREFS_TAB,
+               PluginHost::getInstance()->run_hooks(PluginHost::HOOK_PREFS_TAB,
                        "hook_prefs_tab", "prefPrefs");
 
                print "</div>"; #container
@@ -897,17 +886,17 @@ class Pref_Prefs extends Handler_Protected {
                require_once "lib/otphp/lib/totp.php";
                require_once "lib/phpqrcode/phpqrcode.php";
 
-               $result = db_query("SELECT login,salt,otp_enabled
+               $result = $this->dbh->query("SELECT login,salt,otp_enabled
                        FROM ttrss_users
                        WHERE id = ".$_SESSION["uid"]);
 
                $base32 = new Base32();
 
-               $login = db_fetch_result($result, 0, "login");
-               $otp_enabled = sql_bool_to_bool(db_fetch_result($result, 0, "otp_enabled"));
+               $login = $this->dbh->fetch_result($result, 0, "login");
+               $otp_enabled = sql_bool_to_bool($this->dbh->fetch_result($result, 0, "otp_enabled"));
 
                if (!$otp_enabled) {
-                       $secret = $base32->encode(sha1(db_fetch_result($result, 0, "salt")));
+                       $secret = $base32->encode(sha1($this->dbh->fetch_result($result, 0, "salt")));
                        $topt = new \OTPHP\TOTP($secret);
                        print QRcode::png($topt->provisioning_uri($login));
                }
@@ -921,24 +910,23 @@ class Pref_Prefs extends Handler_Protected {
                $password = $_REQUEST["password"];
                $otp = $_REQUEST["otp"];
 
-               global $pluginhost;
-               $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
+               $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
 
                if ($authenticator->check_password($_SESSION["uid"], $password)) {
 
-                       $result = db_query("SELECT salt
+                       $result = $this->dbh->query("SELECT salt
                                FROM ttrss_users
                                WHERE id = ".$_SESSION["uid"]);
 
                        $base32 = new Base32();
 
-                       $secret = $base32->encode(sha1(db_fetch_result($result, 0, "salt")));
+                       $secret = $base32->encode(sha1($this->dbh->fetch_result($result, 0, "salt")));
                        $topt = new \OTPHP\TOTP($secret);
 
                        $otp_check = $topt->now();
 
                        if ($otp == $otp_check) {
-                               db_query("UPDATE ttrss_users SET otp_enabled = true WHERE
+                               $this->dbh->query("UPDATE ttrss_users SET otp_enabled = true WHERE
                                        id = " . $_SESSION["uid"]);
 
                                print "OK";
@@ -952,14 +940,13 @@ class Pref_Prefs extends Handler_Protected {
        }
 
        function otpdisable() {
-               $password = db_escape_string($_REQUEST["password"]);
+               $password = $this->dbh->escape_string($_REQUEST["password"]);
 
-               global $pluginhost;
-               $authenticator = $pluginhost->get_plugin($_SESSION["auth_module"]);
+               $authenticator = PluginHost::getInstance()->get_plugin($_SESSION["auth_module"]);
 
                if ($authenticator->check_password($_SESSION["uid"], $password)) {
 
-                       db_query("UPDATE ttrss_users SET otp_enabled = false WHERE
+                       $this->dbh->query("UPDATE ttrss_users SET otp_enabled = false WHERE
                                id = " . $_SESSION["uid"]);
 
                        print "OK";
@@ -979,10 +966,9 @@ class Pref_Prefs extends Handler_Protected {
        }
 
        function clearplugindata() {
-               $name = db_escape_string($_REQUEST["name"]);
+               $name = $this->dbh->escape_string($_REQUEST["name"]);
 
-               global $pluginhost;
-               $pluginhost->clear_data($pluginhost->get_plugin($name));
+               PluginHost::getInstance()->clear_data(PluginHost::getInstance()->get_plugin($name));
        }
 
        function customizeCSS() {
@@ -1034,7 +1020,7 @@ class Pref_Prefs extends Handler_Protected {
 
                print "</div>";
 
-               $result = db_query("SELECT title,id FROM ttrss_settings_profiles
+               $result = $this->dbh->query("SELECT title,id FROM ttrss_settings_profiles
                        WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY title");
 
                print "<div class=\"prefProfileHolder\">";
@@ -1065,7 +1051,7 @@ class Pref_Prefs extends Handler_Protected {
 
                $lnum = 1;
 
-               while ($line = db_fetch_assoc($result)) {
+               while ($line = $this->dbh->fetch_assoc($result)) {
 
                        $class = ($lnum % 2) ? "even" : "odd";