Protect private wikis by providing basic read restrictions, closely following the example of the action API. The BasicAccess module provides a narrow interface for this functionality, without exposing the whole session/user concept to the router. Also, add RouterTest and fix a bug in Router::getRelativePath() thus discovered. Change-Id: I82319d56f08b2eec4a585ff6dbd348ccdbadc5b5
33 lines
805 B
PHP
33 lines
805 B
PHP
<?php
|
|
|
|
namespace MediaWiki\Rest\BasicAccess;
|
|
|
|
use User;
|
|
use MediaWiki\Permissions\PermissionManager;
|
|
use MediaWiki\Rest\Handler;
|
|
use MediaWiki\Rest\RequestInterface;
|
|
|
|
/**
|
|
* A factory for MWBasicRequestAuthorizer which passes through a User object
|
|
*
|
|
* @internal
|
|
*/
|
|
class MWBasicAuthorizer extends BasicAuthorizerBase {
|
|
/** @var User */
|
|
private $user;
|
|
|
|
/** @var PermissionManager */
|
|
private $permissionManager;
|
|
|
|
public function __construct( User $user, PermissionManager $permissionManager ) {
|
|
$this->user = $user;
|
|
$this->permissionManager = $permissionManager;
|
|
}
|
|
|
|
protected function createRequestAuthorizer( RequestInterface $request,
|
|
Handler $handler
|
|
): BasicRequestAuthorizer {
|
|
return new MWBasicRequestAuthorizer( $request, $handler, $this->user,
|
|
$this->permissionManager );
|
|
}
|
|
}
|