From 21140e28a8d5aa6ccf7a3366ca0d5fe7de8d2364 Mon Sep 17 00:00:00 2001 From: Leonidas Spyropoulos Date: Wed, 7 Apr 2021 09:56:16 +0100 Subject: [PATCH] Filter out current username from co-maintainers list. Closes: #8 Signed-off-by: Leonidas Spyropoulos Signed-off-by: Eli Schwartz --- web/lib/pkgbasefuncs.inc.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php index 4a49898c..a053962e 100644 --- a/web/lib/pkgbasefuncs.inc.php +++ b/web/lib/pkgbasefuncs.inc.php @@ -1189,7 +1189,8 @@ function pkgbase_get_comaintainer_uids($base_ids) { * @return array Tuple of success/failure indicator and error message */ function pkgbase_set_comaintainers($base_id, $users, $override=false) { - if (!$override && !has_credential(CRED_PKGBASE_EDIT_COMAINTAINERS, array(pkgbase_maintainer_uid($base_id)))) { + $maintainer_uid = pkgbase_maintainer_uid($base_id); + if (!$override && !has_credential(CRED_PKGBASE_EDIT_COMAINTAINERS, array($maintainer_uid))) { return array(false, __("You are not allowed to manage co-maintainers of this package base.")); } @@ -1207,9 +1208,12 @@ function pkgbase_set_comaintainers($base_id, $users, $override=false) { if (!$uid) { return array(false, __("Invalid user name: %s", $user)); + } elseif ($uid == $maintainer_uid) { + // silently ignore when maintainer == co-maintainer + continue; + } else { + $uids_new[] = $uid; } - - $uids_new[] = $uid; } $q = sprintf("SELECT UsersID FROM PackageComaintainers WHERE PackageBaseID = %d", $base_id);