[aur-dev] [PATCH 5/8] Allow only Trusted Users, Developers, and Maintainers to unflag packages

canyonknight canyonknight at gmail.com
Thu Aug 9 21:15:50 EDT 2012


Currently everyone is allowed to unflag a package as out of date. This should
be limited to only the appropriate people for a specific package.

Fixes FS#27263

Signed-off-by: canyonknight <canyonknight at gmail.com>
---
 web/lib/pkgfuncs.inc.php      | 4 ++++
 web/template/actions_form.php | 3 ++-
 web/template/pkg_details.php  | 3 ++-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/web/lib/pkgfuncs.inc.php b/web/lib/pkgfuncs.inc.php
index 6fad628..c592e39 100644
--- a/web/lib/pkgfuncs.inc.php
+++ b/web/lib/pkgfuncs.inc.php
@@ -728,6 +728,10 @@ function pkg_flag ($atype, $ids, $action=true, $dbh=NULL) {
 	}
 	$q.= " WHERE ID IN (" . implode(",", $ids) . ")";
 
+	if (!$action && ($atype != "Trusted User" && $atype != "Developer")) {
+		$q.= "AND MaintainerUID = " . uid_from_sid($_COOKIE["AURSID"], $dbh);
+	}
+
 	db_query($q, $dbh);
 
 	if ($action) {
diff --git a/web/template/actions_form.php b/web/template/actions_form.php
index bfc0611..d687f50 100644
--- a/web/template/actions_form.php
+++ b/web/template/actions_form.php
@@ -21,7 +21,8 @@
 
 		<?php if ($row["OutOfDateTS"] === NULL): ?>
 			<input type="submit" class="button" name="do_Flag" value="<?php echo __("Flag Out-of-date") ?>" />
-		<?php else: ?>
+		<?php elseif (($row["OutOfDateTS"] !== NULL) &&
+		($uid == $row["MaintainerUID"] || $atype == "Trusted User" || $atype == "Developer")): ?>
 			<input type="submit" class="button" name="do_UnFlag" value="<?php echo __("UnFlag Out-of-date") ?>" />
 		<?php endif; ?>
 		<?php endif; ?>
diff --git a/web/template/pkg_details.php b/web/template/pkg_details.php
index da173ec..7176e10 100644
--- a/web/template/pkg_details.php
+++ b/web/template/pkg_details.php
@@ -40,7 +40,8 @@ $sources = package_sources($row["ID"]);
 				<?php if ($USE_VIRTUAL_URLS && $uid): ?>
 				<?php if ($row["OutOfDateTS"] === NULL): ?>
 				<li><a href="<?php echo get_pkg_uri($row['Name']) . 'flag/'; ?>"><?php echo __('Flag package out-of-date'); ?></a></li>
-				<?php else: ?>
+				<?php elseif (($row["OutOfDateTS"] !== NULL) &&
+				($uid == $row["MaintainerUID"] || $atype == "Trusted User" || $atype == "Developer")): ?>
 				<li><a href="<?php echo get_pkg_uri($row['Name']) . 'unflag/'; ?>"><?php echo __('Unflag package'); ?></a></li>
 				<?php endif; ?>
 				<?php if (user_voted($uid, $row['ID'])): ?>
-- 
1.7.11.4



More information about the aur-dev mailing list