Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
10 / 10 |
|
100.00% |
2 / 2 |
CRAP | |
100.00% |
1 / 1 |
OneStepUserNameQuery | |
100.00% |
10 / 10 |
|
100.00% |
2 / 2 |
2 | |
100.00% |
1 / 1 |
__construct | |
100.00% |
2 / 2 |
|
100.00% |
1 / 1 |
1 | |||
execute | |
100.00% |
8 / 8 |
|
100.00% |
1 / 1 |
1 |
1 | <?php |
2 | |
3 | namespace Flow\Repository\UserName; |
4 | |
5 | use Flow\DbFactory; |
6 | use MediaWiki\Block\HideUserUtils; |
7 | use Wikimedia\Rdbms\IResultWrapper; |
8 | |
9 | /** |
10 | * Provide usernames filtered by per-wiki ipblocks. Batches together |
11 | * database requests for multiple usernames when possible. |
12 | */ |
13 | class OneStepUserNameQuery implements UserNameQuery { |
14 | /** |
15 | * @var DbFactory |
16 | */ |
17 | protected $dbFactory; |
18 | |
19 | /** |
20 | * @var HideUserUtils |
21 | */ |
22 | protected $hideUserUtils; |
23 | |
24 | /** |
25 | * @param DbFactory $dbFactory |
26 | */ |
27 | public function __construct( DbFactory $dbFactory, HideUserUtils $hideUserUtils ) { |
28 | $this->dbFactory = $dbFactory; |
29 | $this->hideUserUtils = $hideUserUtils; |
30 | } |
31 | |
32 | /** |
33 | * Look up usernames while respecting ipblocks with one query. |
34 | * Unused, check to see if this is reasonable to use. |
35 | * |
36 | * @param string $wiki |
37 | * @param array $userIds |
38 | * @return IResultWrapper|null |
39 | */ |
40 | public function execute( $wiki, array $userIds ) { |
41 | $dbr = $this->dbFactory->getWikiDB( DB_REPLICA, $wiki ); |
42 | return $dbr->newSelectQueryBuilder() |
43 | ->select( [ 'user_id', 'user_name' ] ) |
44 | ->from( 'user' ) |
45 | ->where( [ 'user_id' => $userIds ] ) |
46 | ->andWhere( $this->hideUserUtils->getExpression( $dbr ) ) |
47 | ->caller( __METHOD__ ) |
48 | ->fetchResultSet(); |
49 | } |
50 | } |