[aur-dev] [PATCH 2/3] Update co-maintainers when disowning a package

Lukas Fleischer lfleischer at archlinux.org
Fri May 22 15:29:41 UTC 2015


When a user disowns a package, the co-maintainer with the highest
priority automatically becomes the new maintainer. When the package is
disowned by a Trusted User or a Developer, the list of co-maintainers is
cleared.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 web/lib/pkgbasefuncs.inc.php | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index d10b5ad..b8da23c 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -638,6 +638,24 @@ function pkgbase_adopt ($base_ids, $action=true, $via) {
 	$q.= "WHERE ID IN (" . implode(",", $base_ids) . ") ";
 	$dbh->exec($q);
 
+	/* Update package co-maintainers when disowning a package. */
+	if (!$action) {
+		if (has_credential(CRED_PKGBASE_DISOWN)) {
+			foreach ($base_ids as $base_id) {
+				pkgbase_set_comaintainers($base_id, "");
+			}
+		} else {
+			foreach ($base_ids as $base_id) {
+				$uids = pkgbase_get_comaintainers($base_id);
+
+				$q = "UPDATE PackageBases ";
+				$q.= "SET MaintainerUID = " . $uids[0] .  " ";
+				$q.= "WHERE ID = " . $base_id;
+				$dbh->exec($q);
+			}
+		}
+	}
+
 	if ($action) {
 		pkgbase_notify($base_ids);
 		return array(true, __("The selected packages have been adopted."));
-- 
2.4.1


More information about the aur-dev mailing list