]> git.wh0rd.org - tt-rss.git/blobdiff - include/sessions.php
ttrss_gc: return true
[tt-rss.git] / include / sessions.php
index c4876489fa3165a486909a45158539cda583acce..1ed9be5504bd2fb1021c713a4b9c285c8ef0f0a5 100644 (file)
        function validate_session() {
                if (SINGLE_USER_MODE) return true;
 
-               if (VERSION != $_SESSION["version"]) return false;
-
-               $check_ip = $_SESSION['ip_address'];
-
-               switch (SESSION_CHECK_ADDRESS) {
-               case 0:
-                       $check_ip = '';
-                       break;
-               case 1:
-                       $check_ip = substr($check_ip, 0, strrpos($check_ip, '.')+1);
-                       break;
-               case 2:
-                       $check_ip = substr($check_ip, 0, strrpos($check_ip, '.'));
-                       $check_ip = substr($check_ip, 0, strrpos($check_ip, '.')+1);
-                       break;
-               };
-
-               if ($check_ip && strpos($_SERVER['REMOTE_ADDR'], $check_ip) !== 0) {
+               if (isset($_SESSION["ref_schema_version"]) && $_SESSION["ref_schema_version"] != session_get_schema_version(true)) {
                        $_SESSION["login_error_msg"] =
-                               __("Session failed to validate (incorrect IP)");
+                               __("Session failed to validate (schema version changed)");
                        return false;
                }
 
-               if ($_SESSION["ref_schema_version"] != session_get_schema_version(true))
-                       return false;
-
-               if (sha1($_SERVER['HTTP_USER_AGENT']) != $_SESSION["user_agent"])
-                       return false;
-
                if ($_SESSION["uid"]) {
                        $result = Db::get()->query(
                                "SELECT pwd_hash FROM ttrss_users WHERE id = '".$_SESSION["uid"]."'");
 
                        // user not found
                        if (Db::get()->num_rows($result) == 0) {
+
+                               $_SESSION["login_error_msg"] =
+                                       __("Session failed to validate (user not found)");
+
                                return false;
                        } else {
                                $pwd_hash = Db::get()->fetch_result($result, 0, "pwd_hash");
 
                                if ($pwd_hash != $_SESSION["pwd_hash"]) {
+
+                                       $_SESSION["login_error_msg"] =
+                                               __("Session failed to validate (password changed)");
+
                                        return false;
                                }
                        }
 
        function ttrss_gc ($expire) {
                Db::get()->query("DELETE FROM ttrss_sessions WHERE expire < " . time());
+
+               return true;
        }
 
        if (!SINGLE_USER_MODE /* && DB_TYPE == "pgsql" */) {