From 71b75bb7faabf9e662d76a292c8260634160afee Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 26 Jan 2016 19:03:05 +0300 Subject: [PATCH] fix multiple issues with archived feeds --- classes/feeds.php | 2 +- classes/rpc.php | 13 +++++++++---- include/functions2.php | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/classes/feeds.php b/classes/feeds.php index df0fd440b..61b1f738e 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -671,7 +671,7 @@ class Feeds extends Handler_Protected { if ($line["orig_feed_id"]) { $tmp_result = $this->dbh->query("SELECT * FROM ttrss_archived_feeds - WHERE id = ".$line["orig_feed_id"]); + WHERE id = ".$line["orig_feed_id"] . " AND owner_uid = " . $_SESSION["uid"]); if ($this->dbh->num_rows($tmp_result) != 0) { diff --git a/classes/rpc.php b/classes/rpc.php index d8f2088e1..235db59ef 100755 --- a/classes/rpc.php +++ b/classes/rpc.php @@ -165,7 +165,7 @@ class RPC extends Handler_Protected { $result = $this->dbh->query("SELECT feed_url,site_url,title FROM ttrss_archived_feeds WHERE id = (SELECT orig_feed_id FROM ttrss_user_entries WHERE ref_id = $id - AND owner_uid = ".$_SESSION["uid"].")"); + AND owner_uid = ".$_SESSION["uid"].") AND owner_uid = " . $_SESSION["uid"]); if ($this->dbh->num_rows($result) != 0) { $feed_url = $this->dbh->escape_string(db_fetch_result($result, 0, "feed_url")); @@ -237,17 +237,22 @@ class RPC extends Handler_Protected { if ($feed_id) { $result = $this->dbh->query("SELECT id FROM ttrss_archived_feeds - WHERE id = '$feed_id'"); + WHERE id = '$feed_id' AND owner_uid = " . $_SESSION["uid"]); if ($this->dbh->num_rows($result) == 0) { + $result = db_query("SELECT MAX(id) AS id FROM ttrss_archived_feeds"); + $new_feed_id = (int)db_fetch_result($result, 0, "id") + 1; + $this->dbh->query("INSERT INTO ttrss_archived_feeds (id, owner_uid, title, feed_url, site_url) - SELECT id, owner_uid, title, feed_url, site_url from ttrss_feeds + SELECT $new_feed_id, owner_uid, title, feed_url, site_url from ttrss_feeds WHERE id = '$feed_id'"); + } else { + $new_feed_id = $this->dbh->fetch_result($result, 0, "id"); } $this->dbh->query("UPDATE ttrss_user_entries - SET orig_feed_id = feed_id, feed_id = NULL + SET orig_feed_id = $new_feed_id, feed_id = NULL WHERE ref_id = '$id' AND owner_uid = " . $_SESSION["uid"]); } } diff --git a/include/functions2.php b/include/functions2.php index fb2fff286..15797a95d 100755 --- a/include/functions2.php +++ b/include/functions2.php @@ -1410,7 +1410,7 @@ if ($line["orig_feed_id"]) { $tmp_result = db_query("SELECT * FROM ttrss_archived_feeds - WHERE id = ".$line["orig_feed_id"]); + WHERE id = ".$line["orig_feed_id"] . " AND owner_uid = " . $_SESSION["uid"]); if (db_num_rows($tmp_result) != 0) {