1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<?php
namespace Mediawiki\Api\Service;
use Mediawiki\Api\SimpleRequest;
use Mediawiki\DataModel\User;
/**
* @access private
*
* @author Addshore
*/
class UserGetter extends Service {
/**
* @param string $username
*
* @return User
*/
public function getFromUsername( $username ) {
$result = $this->api->getRequest(
new SimpleRequest(
'query', [
'list' => 'users',
'ususers' => $username,
'usprop' => 'gender|emailable|registration|editcount|rights|implicitgroups|groups|blockinfo',
]
)
);
return $this->newUserFromListUsersResult( array_shift( $result['query']['users'] ) );
}
/**
* @param array $array
*
* @return User
*/
private function newUserFromListUsersResult( $array ) {
if ( array_key_exists( 'userid', $array ) ) {
return new User(
$array['name'],
$array['userid'],
$array['editcount'],
$array['registration'],
[ 'groups' => $array['groups'], 'implicitgroups' => $array['implicitgroups'] ],
$array['rights'],
$array['gender']
);
} else {
return new User(
$array['name'],
0,
0,
'',
[ 'groups' => [], 'implicitgroups' => [] ],
[],
''
);
}
}
}
|