UserRightsChanger   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 4
dl 0
loc 47
ccs 0
cts 30
cp 0
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A change() 0 33 3
1
<?php
2
3
namespace Mediawiki\Api\Service;
4
5
use Mediawiki\Api\SimpleRequest;
6
use Mediawiki\DataModel\User;
7
8
/**
9
 * @access private
10
 *
11
 * @author Addshore
12
 */
13
class UserRightsChanger extends Service {
14
15
	/**
16
	 * @since 0.3
17
	 *
18
	 * @param User $user
19
	 * @param string[] $add
20
	 * @param string[] $remove
21
	 * @param array $extraParams
22
	 *
23
	 * @return bool
24
	 */
25
	public function change(
26
		User $user,
27
		$add = [],
28
		$remove = [],
29
		array $extraParams = []
30
	) {
31
		$result = $this->api->postRequest(
32
			new SimpleRequest(
33
				'query', [
34
				'list' => 'users',
35
				'ustoken' => 'userrights',
36
				'ususers' => $user->getName(),
37
			]
38
			)
39
		);
40
41
		$params = [
42
			'user' => $user->getName(),
43
			'token' => $result['query']['users'][0]['userrightstoken'],
44
		];
45
		if ( !empty( $add ) ) {
46
			$params['add'] = implode( '|', $add );
47
		}
48
		if ( !empty( $remove ) ) {
49
			$params['remove'] = implode( '|', $remove );
50
		}
51
52
		$this->api->postRequest(
53
			new SimpleRequest( 'userrights', array_merge( $extraParams, $params ) )
54
		);
55
56
		return true;
57
	}
58
59
}
60