MediaWiki
1.42.0
PermissionsError.php
Go to the documentation of this file.
1
<?php
21
use
MediaWiki\Context\RequestContext
;
22
use
MediaWiki\MediaWikiServices
;
23
use
MediaWiki\Permissions\PermissionStatus
;
24
use
MediaWiki\User\UserGroupMembership
;
25
34
class
PermissionsError
extends
ErrorPageError
{
35
public
$permission
,
$errors
;
36
45
public
function
__construct
( $permission, $errors = [] ) {
46
if
( $errors instanceof
PermissionStatus
) {
47
$errors = $errors->toLegacyErrorArray();
48
}
49
50
if
(
$permission
===
null
&& !$errors ) {
51
throw
new \InvalidArgumentException( __METHOD__ .
52
': $permission and $errors cannot both be empty'
);
53
}
54
55
$this->permission =
$permission
;
56
57
if
( !count( $errors ) ) {
58
$groups = [];
59
foreach
( MediaWikiServices::getInstance()
60
->getGroupPermissionsLookup()
61
// @phan-suppress-next-line PhanTypeMismatchArgumentNullable Null on permission is check when used here
62
->getGroupsWithPermission( $this->permission ) as $group
63
) {
64
$groups[] = UserGroupMembership::getLinkWiki( $group, RequestContext::getMain() );
65
}
66
67
if
( $groups ) {
68
$errors[] = [
'badaccess-groups'
, Message::listParam( $groups,
'comma'
), count( $groups ) ];
69
}
else
{
70
$errors[] = [
'badaccess-group0'
];
71
}
72
}
73
74
$this->errors = $errors;
75
76
// Give the parent class something to work with
77
parent::__construct(
'permissionserrors'
, Message::newFromSpecifier( $errors[0] ) );
78
}
79
80
public
function
report
( $action = self::SEND_OUTPUT ) {
81
global
$wgOut
;
82
83
$wgOut
->showPermissionsErrorPage( $this->errors, $this->permission );
84
if
( $action === self::SEND_OUTPUT ) {
85
$wgOut
->output();
86
}
87
}
88
}
$wgOut
if(!defined( 'MW_NO_SESSION') &&MW_ENTRY_POINT !=='cli' $wgOut
Definition
Setup.php:536
ErrorPageError
An error page which can definitely be safely rendered using the OutputPage.
Definition
ErrorPageError.php:30
MediaWiki\Context\RequestContext
Group all the pieces relevant to the context of a request into one instance.
Definition
RequestContext.php:66
MediaWiki\MediaWikiServices
Service locator for MediaWiki core services.
Definition
MediaWikiServices.php:241
MediaWiki\Permissions\PermissionStatus
A StatusValue for permission errors.
Definition
PermissionStatus.php:39
MediaWiki\User\UserGroupMembership
Represents a "user group membership" – a specific instance of a user belonging to a group.
Definition
UserGroupMembership.php:41
PermissionsError
Show an error when a user tries to do something they do not have the necessary permissions for.
Definition
PermissionsError.php:34
PermissionsError\$permission
$permission
Definition
PermissionsError.php:35
PermissionsError\report
report( $action=self::SEND_OUTPUT)
Definition
PermissionsError.php:80
PermissionsError\$errors
$errors
Definition
PermissionsError.php:35
PermissionsError\__construct
__construct( $permission, $errors=[])
Definition
PermissionsError.php:45
includes
exception
PermissionsError.php
Generated on Thu Jun 13 2024 13:48:03 for MediaWiki by
1.10.0