X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryAllUsers.php;h=79f64694423a35f93c9ff9e549585ae4b9259b53;hb=fbe10c4b3dc982d96cbf846495b178dc362c1fa3;hp=13256624a64275ab5395a5e105937b26672c32f1;hpb=29719f846b8887e1190ddf85125387c079f9539b;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryAllUsers.php b/includes/api/ApiQueryAllUsers.php index 13256624a6..79f6469442 100644 --- a/includes/api/ApiQueryAllUsers.php +++ b/includes/api/ApiQueryAllUsers.php @@ -81,12 +81,18 @@ class ApiQueryAllUsers extends ApiQueryBase { $db->buildLike( $this->getCanonicalUserName( $params['prefix'] ), $db->anyString() ) ); } - if ( !is_null( $params['rights'] ) ) { + if ( !is_null( $params['rights'] ) && count( $params['rights'] ) ) { $groups = array(); foreach( $params['rights'] as $r ) { $groups = array_merge( $groups, User::getGroupsWithPermission( $r ) ); } + // no group with the given right(s) exists, no need for a query + if( !count( $groups ) ) { + $this->getResult()->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), '' ); + return; + } + $groups = array_unique( $groups ); if ( is_null( $params['group'] ) ) { @@ -252,7 +258,7 @@ class ApiQueryAllUsers extends ApiQueryBase { if ( $fld_groups ) { if ( !isset( $lastUserData['groups'] ) ) { if ( $lastUserObj ) { - $lastUserData['groups'] = ApiQueryUsers::getAutoGroups( $lastUserObj ); + $lastUserData['groups'] = $lastUserObj->getAutomaticGroups(); } else { // This should not normally happen $lastUserData['groups'] = array(); @@ -267,7 +273,7 @@ class ApiQueryAllUsers extends ApiQueryBase { } if ( $fld_implicitgroups && !isset( $lastUserData['implicitgroups'] ) && $lastUserObj ) { - $lastUserData['implicitgroups'] = ApiQueryUsers::getAutoGroups( $lastUserObj ); + $lastUserData['implicitgroups'] = $lastUserObj->getAutomaticGroups(); $result->setIndexedTagName( $lastUserData['implicitgroups'], 'g' ); } if ( $fld_rights ) {