X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryAllUsers.php;h=9e7ad67068ec9460a2b3347872f63e12ba5101b0;hb=49748181dd56ec97e7ba7c13e684a16abceb3cc0;hp=2e2ac320fd589483e146a1160791f2881bd51f70;hpb=127c0072c4d29902fbf2dcfd63464042462270ed;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryAllUsers.php b/includes/api/ApiQueryAllUsers.php index 2e2ac320fd..9e7ad67068 100644 --- a/includes/api/ApiQueryAllUsers.php +++ b/includes/api/ApiQueryAllUsers.php @@ -116,8 +116,18 @@ class ApiQueryAllUsers extends ApiQueryBase { // Filter only users that belong to a given group. This might // produce as many rows-per-user as there are groups being checked. $this->addTables( 'user_groups', 'ug1' ); - $this->addJoinConds( [ 'ug1' => [ 'INNER JOIN', [ 'ug1.ug_user=user_id', - 'ug1.ug_group' => $params['group'] ] ] ] ); + $this->addJoinConds( [ + 'ug1' => [ + 'INNER JOIN', + [ + 'ug1.ug_user=user_id', + 'ug1.ug_group' => $params['group'], + $this->getConfig()->get( 'DisableUserGroupExpiry' ) ? + '1' : + 'ug1.ug_expiry IS NULL OR ug1.ug_expiry >= ' . $db->addQuotes( $db->timestamp() ) + ] + ] + ] ); $maxDuplicateRows *= count( $params['group'] ); } @@ -135,7 +145,12 @@ class ApiQueryAllUsers extends ApiQueryBase { ) ]; } $this->addJoinConds( [ 'ug1' => [ 'LEFT OUTER JOIN', - array_merge( [ 'ug1.ug_user=user_id' ], $exclude ) + array_merge( [ + 'ug1.ug_user=user_id', + $this->getConfig()->get( 'DisableUserGroupExpiry' ) ? + '1' : + 'ug1.ug_expiry IS NULL OR ug1.ug_expiry >= ' . $db->addQuotes( $db->timestamp() ) + ], $exclude ) ] ] ); $this->addWhere( 'ug1.ug_user IS NULL' ); } @@ -148,7 +163,12 @@ class ApiQueryAllUsers extends ApiQueryBase { if ( $fld_groups || $fld_rights ) { $this->addFields( [ 'groups' => - $db->buildGroupConcatField( '|', 'user_groups', 'ug_group', 'ug_user=user_id' ) + $db->buildGroupConcatField( '|', 'user_groups', 'ug_group', [ + 'ug_user=user_id', + $this->getConfig()->get( 'DisableUserGroupExpiry' ) ? + '1' : + 'ug_expiry IS NULL OR ug_expiry >= ' . $db->addQuotes( $db->timestamp() ) + ] ) ] ); } @@ -166,7 +186,7 @@ class ApiQueryAllUsers extends ApiQueryBase { ], ] ] ); - // Actually count the actions using a subquery (bug 64505 and bug 64507) + // Actually count the actions using a subquery (T66505 and T66507) $timestamp = $db->timestamp( wfTimestamp( TS_UNIX ) - $activeUserSeconds ); $this->addFields( [ 'recentactions' => '(' . $db->selectSQLText(