mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Update co-maintainer list when promoting a user
When a user disowns a package and promotes a co-maintainer, remove that new maintainer from the list of package co-maintainers. Since only the package maintainer can manage co-maintainers, this must happen before the actual disown operation. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
parent
c6e09def2b
commit
dd3eb28a8c
1 changed files with 20 additions and 13 deletions
|
@ -629,32 +629,39 @@ function pkgbase_adopt ($base_ids, $action=true, $via) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$q = "UPDATE PackageBases ";
|
/* Adopt or disown the package. */
|
||||||
if ($action) {
|
if ($action) {
|
||||||
|
$q = "UPDATE PackageBases ";
|
||||||
$q.= "SET MaintainerUID = $uid ";
|
$q.= "SET MaintainerUID = $uid ";
|
||||||
|
$q.= "WHERE ID IN (" . implode(",", $base_ids) . ") ";
|
||||||
|
$dbh->exec($q);
|
||||||
} else {
|
} else {
|
||||||
$q.= "SET MaintainerUID = NULL ";
|
/* Update the co-maintainer list when disowning a package. */
|
||||||
}
|
|
||||||
$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)) {
|
if (has_credential(CRED_PKGBASE_DISOWN)) {
|
||||||
foreach ($base_ids as $base_id) {
|
foreach ($base_ids as $base_id) {
|
||||||
pkgbase_set_comaintainers($base_id, "");
|
pkgbase_set_comaintainers($base_id, array());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$q = "UPDATE PackageBases ";
|
||||||
|
$q.= "SET MaintainerUID = NULL ";
|
||||||
|
$q.= "WHERE ID IN (" . implode(",", $base_ids) . ") ";
|
||||||
|
$dbh->exec($q);
|
||||||
} else {
|
} else {
|
||||||
foreach ($base_ids as $base_id) {
|
foreach ($base_ids as $base_id) {
|
||||||
$comaintainers = pkgbase_get_comaintainers($base_id);
|
$comaintainers = pkgbase_get_comaintainers($base_id);
|
||||||
|
|
||||||
if (count($comaintainers) > 0) {
|
if (count($comaintainers) > 0) {
|
||||||
$uid = uid_from_username($comaintainers[0]);
|
$uid = uid_from_username($comaintainers[0]);
|
||||||
$q = "UPDATE PackageBases ";
|
$comaintainers = array_diff($comaintainers, array($comaintainers[0]));
|
||||||
$q.= "SET MaintainerUID = " . $uid . " ";
|
pkgbase_set_comaintainers($base_id, $comaintainers);
|
||||||
$q.= "WHERE ID = " . $base_id;
|
} else {
|
||||||
$dbh->exec($q);
|
$uid = "NULL";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$q = "UPDATE PackageBases ";
|
||||||
|
$q.= "SET MaintainerUID = " . $uid . " ";
|
||||||
|
$q.= "WHERE ID = " . $base_id;
|
||||||
|
$dbh->exec($q);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue