From 422d8026daaae0a9bc7270f071da22f5d66c4f0a Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 22 May 2015 14:54:49 +0200 Subject: Update co-maintainers when disowning a package 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 --- 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.")); -- cgit v1.2.3-70-g09d2