[aur-dev] [PATCH] aurjson.class.php: Exclude hidden package bases

Lukas Fleischer lfleischer at archlinux.org
Tue Jun 9 06:45:55 UTC 2015


Do not return packages belonging to hidden package bases in RPC results.

Fixes FS#45271.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 web/lib/aurjson.class.php | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/web/lib/aurjson.class.php b/web/lib/aurjson.class.php
index 745947e..5fb89a9 100644
--- a/web/lib/aurjson.class.php
+++ b/web/lib/aurjson.class.php
@@ -207,6 +207,7 @@ class AurJSON {
 				"LEFT JOIN Licenses " .
 				"ON Licenses.ID = PackageLicenses.LicenseID " .
 				"WHERE ${where_condition} " .
+				"AND PackageBases.PackagerUID IS NOT NULL " .
 				"GROUP BY Packages.ID " .
 				"LIMIT $max_results";
 		} elseif ($this->version >= 2) {
@@ -217,6 +218,7 @@ class AurJSON {
 				"LEFT JOIN Users " .
 				"ON PackageBases.MaintainerUID = Users.ID " .
 				"WHERE ${where_condition} " .
+				"AND PackageBases.PackagerUID IS NOT NULL " .
 				"LIMIT $max_results";
 		}
 		$result = $this->dbh->query($query);
@@ -391,9 +393,13 @@ class AurJSON {
 	 * @return string The JSON formatted response data.
 	 */
 	private function suggest($search) {
-		$query = 'SELECT Name FROM Packages WHERE Name LIKE ' .
-			$this->dbh->quote(addcslashes($search, '%_') . '%') .
-			' ORDER BY Name ASC LIMIT 20';
+		$query = "SELECT Packages.Name FROM Packages ";
+		$query.= "LEFT JOIN PackageBases ";
+		$query.= "ON PackageBases.ID = Packages.PackageBaseID ";
+		$query.= "WHERE Packages.Name LIKE ";
+		$query.= $this->dbh->quote(addcslashes($search, '%_') . '%');
+		$query.= " AND PackageBases.PackagerUID IS NOT NULL ";
+		$query.= "ORDER BY Name ASC LIMIT 20";
 
 		$result = $this->dbh->query($query);
 		$result_array = array();
@@ -413,9 +419,10 @@ class AurJSON {
 	 * @return string The JSON formatted response data.
 	 */
 	private function suggest_pkgbase($search) {
-		$query = 'SELECT Name FROM PackageBases WHERE Name LIKE ' .
-			$this->dbh->quote(addcslashes($search, '%_') . '%') .
-			' ORDER BY Name ASC LIMIT 20';
+		$query = "SELECT Name FROM PackageBases WHERE Name LIKE ";
+		$query.= $this->dbh->quote(addcslashes($search, '%_') . '%');
+		$query.= " AND PackageBases.PackagerUID IS NOT NULL ";
+		$query.= "ORDER BY Name ASC LIMIT 20";
 
 		$result = $this->dbh->query($query);
 		$result_array = array();
-- 
2.4.2


More information about the aur-dev mailing list