Merge "FauxRequest: don’t override getValues()"
[lhc/web/wiklou.git] / includes / Rest / BasicAccess / MWBasicRequestAuthorizer.php
1 <?php
2
3 namespace MediaWiki\Rest\BasicAccess;
4
5 use MediaWiki\User\UserIdentity;
6 use MediaWiki\Permissions\PermissionManager;
7 use MediaWiki\Rest\Handler;
8 use MediaWiki\Rest\RequestInterface;
9
10 /**
11 * The concrete implementation of basic read/write restrictions in MediaWiki
12 *
13 * @internal
14 */
15 class MWBasicRequestAuthorizer extends BasicRequestAuthorizer {
16 /** @var UserIdentity */
17 private $user;
18
19 /** @var PermissionManager */
20 private $permissionManager;
21
22 public function __construct( RequestInterface $request, Handler $handler,
23 UserIdentity $user, PermissionManager $permissionManager
24 ) {
25 parent::__construct( $request, $handler );
26 $this->user = $user;
27 $this->permissionManager = $permissionManager;
28 }
29
30 protected function isReadAllowed() {
31 return $this->permissionManager->isEveryoneAllowed( 'read' )
32 || $this->isAllowed( 'read' );
33 }
34
35 protected function isWriteAllowed() {
36 return $this->isAllowed( 'writeapi' );
37 }
38
39 private function isAllowed( $action ) {
40 return $this->permissionManager->userHasRight( $this->user, $action );
41 }
42 }