wiki.techinc.nl/includes/Permissions/UltimateAuthority.php
Umherirrender e662614f95 Use explicit nullable type on parameter arguments
Implicitly marking parameter $... as nullable is deprecated in php8.4,
the explicit nullable type must be used instead

Created with autofix from Ide15839e98a6229c22584d1c1c88c690982e1d7a

Break one long line in SpecialPage.php

Bug: T376276
Change-Id: I807257b2ba1ab2744ab74d9572c9c3d3ac2a968e
2024-10-16 20:58:33 +02:00

144 lines
3.3 KiB
PHP

<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
namespace MediaWiki\Permissions;
use InvalidArgumentException;
use MediaWiki\Block\Block;
use MediaWiki\Page\PageIdentity;
use MediaWiki\User\UserIdentity;
use Wikimedia\Rdbms\IDBAccessObject;
/**
* Represents an authority that has all permissions.
* This is intended for use in maintenance scripts and tests.
*
* @newable
* @since 1.36
*/
class UltimateAuthority implements Authority {
/** @var UserIdentity */
private $actor;
/** @var bool */
private $isTemp;
/**
* @stable to call
* @param UserIdentity $actor
* @param bool $isTemp
*/
public function __construct( UserIdentity $actor, $isTemp = false ) {
$this->actor = $actor;
$this->isTemp = $isTemp;
}
/** @inheritDoc */
public function getUser(): UserIdentity {
return $this->actor;
}
/** @inheritDoc */
public function getBlock( int $freshness = IDBAccessObject::READ_NORMAL ): ?Block {
return null;
}
/** @inheritDoc */
public function isAllowed( string $permission, ?PermissionStatus $status = null ): bool {
return true;
}
/** @inheritDoc */
public function isAllowedAny( ...$permissions ): bool {
if ( !$permissions ) {
throw new InvalidArgumentException( 'At least one permission must be specified' );
}
return true;
}
/** @inheritDoc */
public function isAllowedAll( ...$permissions ): bool {
if ( !$permissions ) {
throw new InvalidArgumentException( 'At least one permission must be specified' );
}
return true;
}
/** @inheritDoc */
public function probablyCan(
string $action,
PageIdentity $target,
?PermissionStatus $status = null
): bool {
return true;
}
/** @inheritDoc */
public function definitelyCan(
string $action,
PageIdentity $target,
?PermissionStatus $status = null
): bool {
return true;
}
/** @inheritDoc */
public function isDefinitelyAllowed( string $action, ?PermissionStatus $status = null ): bool {
return true;
}
/** @inheritDoc */
public function authorizeAction( string $action, ?PermissionStatus $status = null ): bool {
return true;
}
/** @inheritDoc */
public function authorizeRead(
string $action,
PageIdentity $target,
?PermissionStatus $status = null
): bool {
return true;
}
/** @inheritDoc */
public function authorizeWrite(
string $action,
PageIdentity $target,
?PermissionStatus $status = null
): bool {
return true;
}
public function isRegistered(): bool {
return $this->actor->isRegistered();
}
public function isTemp(): bool {
return $this->isTemp;
}
public function isNamed(): bool {
return $this->isRegistered() && !$this->isTemp();
}
}