Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
100.00% |
9 / 9 |
|
100.00% |
1 / 1 |
CRAP | |
100.00% |
1 / 1 |
AccessLevelTrait | |
100.00% |
9 / 9 |
|
100.00% |
1 / 1 |
3 | |
100.00% |
1 / 1 |
highestAccessLevel | |
100.00% |
9 / 9 |
|
100.00% |
1 / 1 |
3 |
1 | <?php |
2 | |
3 | namespace MediaWiki\IPInfo; |
4 | |
5 | use MediaWiki\IPInfo\Rest\Presenter\DefaultPresenter; |
6 | |
7 | trait AccessLevelTrait { |
8 | /** |
9 | * Get the highest access level user has permissions for. |
10 | * |
11 | * @param string[] $permissions |
12 | * @return ?string null if the user has no rights to see IP information |
13 | */ |
14 | public function highestAccessLevel( array $permissions ): ?string { |
15 | // An ordered list of the access levels for viewing IP information, ordered |
16 | // from lowest to highest level. |
17 | // Should be kept up to date with DefaultPresenter::VIEWING_RIGHTS |
18 | $levels = [ |
19 | DefaultPresenter::IPINFO_VIEW_BASIC_RIGHT, |
20 | DefaultPresenter::IPINFO_VIEW_FULL_RIGHT, |
21 | ]; |
22 | |
23 | $highestLevel = null; |
24 | foreach ( $levels as $level ) { |
25 | if ( in_array( $level, $permissions ) ) { |
26 | $highestLevel = $level; |
27 | } |
28 | } |
29 | |
30 | return $highestLevel; |
31 | } |
32 | } |