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) {
|
||||
$q = "UPDATE PackageBases ";
|
||||
$q.= "SET MaintainerUID = $uid ";
|
||||
$q.= "WHERE ID IN (" . implode(",", $base_ids) . ") ";
|
||||
$dbh->exec($q);
|
||||
} else {
|
||||
$q.= "SET MaintainerUID = NULL ";
|
||||
}
|
||||
$q.= "WHERE ID IN (" . implode(",", $base_ids) . ") ";
|
||||
$dbh->exec($q);
|
||||
|
||||
/* Update package co-maintainers when disowning a package. */
|
||||
if (!$action) {
|
||||
/* Update the co-maintainer list when disowning a package. */
|
||||
if (has_credential(CRED_PKGBASE_DISOWN)) {
|
||||
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 {
|
||||
foreach ($base_ids as $base_id) {
|
||||
$comaintainers = pkgbase_get_comaintainers($base_id);
|
||||
|
||||
if (count($comaintainers) > 0) {
|
||||
$uid = uid_from_username($comaintainers[0]);
|
||||
$q = "UPDATE PackageBases ";
|
||||
$q.= "SET MaintainerUID = " . $uid . " ";
|
||||
$q.= "WHERE ID = " . $base_id;
|
||||
$dbh->exec($q);
|
||||
$comaintainers = array_diff($comaintainers, array($comaintainers[0]));
|
||||
pkgbase_set_comaintainers($base_id, $comaintainers);
|
||||
} else {
|
||||
$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