summaryrefslogtreecommitdiffstats
path: root/web/lib
diff options
context:
space:
mode:
Diffstat (limited to 'web/lib')
-rw-r--r--web/lib/pkgbasefuncs.inc.php10
1 files 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);