Browse Source

fix multiple issues with archived feeds

Andrew Dolgov 8 years ago
parent
commit
71b75bb7fa
3 changed files with 11 additions and 6 deletions
  1. 1 1
      classes/feeds.php
  2. 9 4
      classes/rpc.php
  3. 1 1
      include/functions2.php

+ 1 - 1
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) {
 

+ 9 - 4
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"]);
 			}
 		}

+ 1 - 1
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) {