MediaWiki master
MediaWiki\Specials\SpecialBlock Class Reference

Allow users with 'block' user right to block IPs and user accounts from editing pages and other actions. More...

Inherits MediaWiki\SpecialPage\FormSpecialPage.

Collaboration diagram for MediaWiki\Specials\SpecialBlock:

Public Member Functions

 __construct (BlockUtils $blockUtils, BlockPermissionCheckerFactory $blockPermissionCheckerFactory, BlockUserFactory $blockUserFactory, DatabaseBlockStore $blockStore, UserNameUtils $userNameUtils, UserNamePrefixSearch $userNamePrefixSearch, BlockActionInfo $blockActionInfo, TitleFormatter $titleFormatter, NamespaceInfo $namespaceInfo)
 
 doesWrites ()
 Indicates whether POST requests to this special page require write access to the wiki.Subclasses must override this method to return true if any of the operations that they perform on POST requests are not "safe" per RFC 7231 section 4.2.1. A subclass's operation is "safe" if it is essentially read-only, i.e. the client does not request nor expect any state change that would be observable in the responses to future requests.Implementations of this method must always return the same value, regardless of the parameters passed to the constructor or system state.When handling GET/HEAD requests, subclasses should only perform "safe" operations. Note that some subclasses might only perform "safe" operations even for POST requests, particularly in the case where large input parameters are required.
Stability: stable
to override
Returns
bool
Since
1.27

 
 execute ( $par)
 Basic SpecialPage workflow: get a form, send it to the user; get some data back,.
Parameters
string | null$parSubpage string if one was specified

 
 getDescription ()
 Returns the name that goes in the \<h1\> in the special page itself, and also the name that will be listed in Special:Specialpages.
 
 onSubmit (array $data, ?HTMLForm $form=null)
 Process the form on POST submission.
 
 onSuccess ()
 Do something exciting on successful processing of the form, most likely to show a confirmation message.
 
 prefixSearchSubpages ( $search, $limit, $offset)
 Return an array of subpages beginning with $search that this special page will accept.
 
 requiresUnblock ()
 We allow certain special cases where user is blocked.
 
- Public Member Functions inherited from MediaWiki\SpecialPage\FormSpecialPage
 onSubmit (array $data)
 Process the form on submission.
 
 requiresPost ()
 Whether this action should using POST method to submit, default to true.
 
 requiresWrite ()
 Whether this action requires the wiki not to be locked, default to requiresPost()
 
- Public Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
 __construct ( $name='', $restriction='', $listed=true, $function=false, $file='', $includable=false)
 Default constructor for special pages Derivative classes should call this from their constructor Note that if the user does not have the required level, an error message will be displayed by the default execute() method, without the global function ever being called.
 
 addHelpLink ( $to, $overrideBaseUrl=false)
 Adds help link with an icon via page indicators.
 
 checkPermissions ()
 Checks if userCanExecute, and if not throws a PermissionsError.
 
 checkReadOnly ()
 If the wiki is currently in readonly mode, throws a ReadOnlyError.
 
 getAssociatedNavigationLinks ()
 Return an array of strings representing page titles that are discoverable to end users via UI.
 
 getAuthority ()
 Shortcut to get the Authority executing this instance.
 
 getConfig ()
 Shortcut to get main config object.
 
 getContentLanguage ()
 Shortcut to get content language.
 
 getContext ()
 Gets the context this SpecialPage is executed in.
 
 getFinalGroupName ()
 Get the group that the special page belongs in on Special:SpecialPage Use this method, instead of getGroupName to allow customization of the group name from the wiki side.
 
 getFullTitle ()
 Return the full title, including $par.
 
 getLanguage ()
 Shortcut to get user's language.
 
 getLinkRenderer ()
 
 getLocalName ()
 Get the localised name of the special page.
 
 getName ()
 Get the canonical, unlocalized name of this special page without namespace.
 
 getOutput ()
 Get the OutputPage being used for this instance.
 
 getPageTitle ( $subpage=false)
 Get a self-referential title object.
 
 getRequest ()
 Get the WebRequest being used for this instance.
 
 getRestriction ()
 Get the permission that a user must have to execute this page.
 
 getShortDescription (string $path='')
 Similar to getDescription, but takes into account subpages and designed for display in tabs.
 
 getSkin ()
 Shortcut to get the skin being used for this instance.
 
 getUser ()
 Shortcut to get the User executing this instance.
 
 including ( $x=null)
 Whether the special page is being evaluated via transclusion.
 
 isCached ()
 Is this page cached? Expensive pages are cached or disabled in miser mode.
 
 isExpensive ()
 Is this page expensive (for some definition of expensive)? Expensive pages are disabled or cached in miser mode.
 
 isIncludable ()
 Whether it's allowed to transclude the special page via {{Special:Foo/params}}.
 
 isListed ()
 Whether this special page is listed in Special:SpecialPages.
 
 isRestricted ()
 Can be overridden by subclasses with more complicated permissions schemes.
 
 maxIncludeCacheTime ()
 How long to cache page when it is being included.
 
 msg ( $key,... $params)
 Wrapper around wfMessage that sets the current context.
 
 requireLogin ( $reasonMsg='exception-nologin-text', $titleMsg='exception-nologin')
 If the user is not logged in, throws UserNotLoggedIn error.
 
 requireNamedUser ( $reasonMsg='exception-nologin-text', $titleMsg='exception-nologin', bool $alwaysRedirectToLoginPage=false)
 If the user is not logged in or is a temporary user, throws UserNotLoggedIn.
 
 run ( $subPage)
 Entry point.
 
 setContentLanguage (Language $contentLanguage)
 Set content language.
 
 setContext ( $context)
 Sets the context this SpecialPage is executed in.
 
 setHookContainer (HookContainer $hookContainer)
 
 setLinkRenderer (LinkRenderer $linkRenderer)
 
 setSpecialPageFactory (SpecialPageFactory $specialPageFactory)
 
 userCanExecute (User $user)
 Checks if the given user (identified by an object) can execute this special page (as defined by $mRestriction).
 

Static Public Member Functions

static canBlockEmail (UserIdentity $user)
 Can we do an email block?
 
static getSuggestedDurations (?Language $lang=null, $includeOther=true)
 Get an array of suggested block durations from MediaWiki:Ipboptions.
 
static parseExpiryInput ( $expiry)
 Convert a submitted expiry time, which may be relative ("2 weeks", etc) or absolute ("24 May 2034", etc), into an absolute timestamp we can put into the database.
 
static processForm (array $data, IContextSource $context)
 Given the form data, actually implement a block.
 
- Static Public Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
static getSafeTitleFor ( $name, $subpage=false)
 Get a localised Title object for a page name with a possibly unvalidated subpage.
 
static getTitleFor ( $name, $subpage=false, $fragment='')
 Get a localised Title object for a specified special page name If you don't need a full Title object, consider using TitleValue through getTitleValueFor() below.
 
static getTitleValueFor ( $name, $subpage=false, $fragment='')
 Get a localised TitleValue object for a specified special page name.
 
static newSearchPage (User $user)
 Get the users preferred search page.
 

Protected Member Functions

 alterForm (HTMLForm $form)
 Customizes the HTMLForm a bit.
 
 checkExecutePermissions (User $user)
 Check that the user can unblock themselves if they are trying to do so.
 
 getDisplayFormat ()
 Get display format for the form.See HTMLForm documentation for available values.
Since
1.25
Returns
string

 
 getFormFields ()
 Get the HTMLForm descriptor array for the block form.
 
 getGroupName ()
 Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-group-*' for valid names This method defaults to group 'other'.
Stability: stable
to override
Returns
string
Since
1.21

 
 maybeAlterFormDefaults (&$fields)
 If the user has already been blocked with similar settings, load that block and change the defaults for the form fields to match the existing settings.
 
 postHtml ()
 Add footer elements to the form.
 
 preHtml ()
 Add header elements like block log entries, etc.
 
 setParameter ( $par)
 Handle some magic here.
 
- Protected Member Functions inherited from MediaWiki\SpecialPage\FormSpecialPage
 getForm ()
 Get the HTMLForm to control behavior.
 
 getMessagePrefix ()
 Get message prefix for HTMLForm.
 
 getShowAlways ()
 Whether the form should always be shown despite the success of submission.
 
 getSubpageField ()
 Override this function to set the field name used in the subpage syntax.
 
 postText ()
 Add post-text to the form.
 
 preText ()
 Add pre-text to the form.
 
 setReauthPostData (array $data)
 Preserve POST data across reauthentication.
 
- Protected Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
 addFeedLinks ( $params)
 Adds RSS/atom links.
 
 afterExecute ( $subPage)
 Gets called after.
 
 authorizeAction (?string $action=null)
 Utility function for authorizing an action to be performed by the special page.
 
 beforeExecute ( $subPage)
 Gets called before.
 
 buildPrevNextNavigation ( $offset, $limit, array $query=[], $atend=false, $subpage=false)
 Generate (prev x| next x) (20|50|100...) type links for paging.
 
 checkLoginSecurityLevel ( $level=null)
 Verifies that the user meets the security level, possibly reauthenticating them in the process.
 
 displayRestrictionError ()
 Output an error message telling the user what access level they have to have.
 
 getAuthManager ()
 
 getCacheTTL ()
 
 getHookContainer ()
 
 getHookRunner ()
 
 getLoginSecurityLevel ()
 Tells if the special page does something security-sensitive and needs extra defense against a stolen account (e.g.
 
 getRobotPolicy ()
 Return the robot policy.
 
 getSpecialPageFactory ()
 
 getSubpagesForPrefixSearch ()
 Return an array of subpages that this special page will accept for prefix searches.
 
 outputHeader ( $summaryMessageKey='')
 Outputs a summary message on top of special pages By default the message key is the canonical name of the special page May be overridden, i.e.
 
 prefixSearchString ( $search, $limit, $offset, ?SearchEngineFactory $searchEngineFactory=null)
 Perform a regular substring search for prefixSearchSubpages.
 
 setAuthManager (AuthManager $authManager)
 Set the injected AuthManager from the special page constructor.
 
 setHeaders ()
 Sets headers - this should be called from the execute() method of all derived classes!
 
 useTransactionalTimeLimit ()
 Call wfTransactionalTimeLimit() if this request was POSTed.
 

Static Protected Member Functions

static getTargetUserTitle ( $target)
 Get a user page target for things like logs.
 
- Static Protected Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
static prefixSearchArray ( $search, $limit, array $subpages, $offset)
 Helper function for implementations of prefixSearchSubpages() that filter the values in memory (as opposed to making a query).
 

Protected Attributes

bool $alreadyBlocked
 
array array $codexFormData = []
 <mixed,mixed> An associative array used to pass vars to Codex form
 
MessageSpecifier[] $preErrors = []
 
User string $previousTarget
 The previous block target.
 
bool $requestedHideUser
 Whether the previous submission of the form asked for HideUser.
 
UserIdentity string null $target
 User to be blocked, as passed either by parameter (url?wpTarget=Foo) or as subpage (Special:Block/Foo)
 
int $type
 DatabaseBlock::TYPE_ constant.
 
bool bool $useCodex = false
 
bool bool $useMultiblocks = false
 
- Protected Attributes inherited from MediaWiki\SpecialPage\FormSpecialPage
string null $par = null
 The subpage of the special page.
 
array null $reauthPostData = null
 POST data preserved across re-authentication.
 
- Protected Attributes inherited from MediaWiki\SpecialPage\SpecialPage
IContextSource $mContext
 Current request context.
 
bool $mIncludable
 Whether the special page can be included in an article.
 
bool $mIncluding
 Whether or not this special page is being included from an article.
 
string $mName
 The canonical name of this special page Also used as the message key for the default.
 
string $mRestriction
 Minimum user level required to access this page, or "" for anyone.
 

Detailed Description

Allow users with 'block' user right to block IPs and user accounts from editing pages and other actions.

Definition at line 71 of file SpecialBlock.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Specials\SpecialBlock::__construct ( BlockUtils $blockUtils,
BlockPermissionCheckerFactory $blockPermissionCheckerFactory,
BlockUserFactory $blockUserFactory,
DatabaseBlockStore $blockStore,
UserNameUtils $userNameUtils,
UserNamePrefixSearch $userNamePrefixSearch,
BlockActionInfo $blockActionInfo,
TitleFormatter $titleFormatter,
NamespaceInfo $namespaceInfo )
Parameters
BlockUtils$blockUtils
BlockPermissionCheckerFactory$blockPermissionCheckerFactory
BlockUserFactory$blockUserFactory
DatabaseBlockStore$blockStore
UserNameUtils$userNameUtils
UserNamePrefixSearch$userNamePrefixSearch
BlockActionInfo$blockActionInfo
TitleFormatter$titleFormatter
NamespaceInfo$namespaceInfo

Definition at line 128 of file SpecialBlock.php.

References MediaWiki\MainConfigNames\EnableMultiBlocks, MediaWiki\SpecialPage\SpecialPage\getConfig(), MediaWiki\SpecialPage\SpecialPage\getRequest(), and MediaWiki\MainConfigNames\UseCodexSpecialBlock.

Member Function Documentation

◆ alterForm()

MediaWiki\Specials\SpecialBlock::alterForm ( HTMLForm $form)
protected

◆ canBlockEmail()

static MediaWiki\Specials\SpecialBlock::canBlockEmail ( UserIdentity $user)
static

Can we do an email block?

Deprecated
since 1.36, use BlockPermissionChecker service instead, hard-deprecated since 1.43
Parameters
UserIdentity$userThe sysop wanting to make a block
Returns
bool

Definition at line 1153 of file SpecialBlock.php.

References wfDeprecated().

◆ checkExecutePermissions()

MediaWiki\Specials\SpecialBlock::checkExecutePermissions ( User $user)
protected

Check that the user can unblock themselves if they are trying to do so.

Parameters
User$user
Exceptions
ErrorPageError

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 189 of file SpecialBlock.php.

◆ doesWrites()

MediaWiki\Specials\SpecialBlock::doesWrites ( )

Indicates whether POST requests to this special page require write access to the wiki.Subclasses must override this method to return true if any of the operations that they perform on POST requests are not "safe" per RFC 7231 section 4.2.1. A subclass's operation is "safe" if it is essentially read-only, i.e. the client does not request nor expect any state change that would be observable in the responses to future requests.Implementations of this method must always return the same value, regardless of the parameters passed to the constructor or system state.When handling GET/HEAD requests, subclasses should only perform "safe" operations. Note that some subclasses might only perform "safe" operations even for POST requests, particularly in the case where large input parameters are required.

Stability: stable
to override
Returns
bool
Since
1.27

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 179 of file SpecialBlock.php.

◆ execute()

MediaWiki\Specials\SpecialBlock::execute ( $par)

Basic SpecialPage workflow: get a form, send it to the user; get some data back,.

Parameters
string | null$parSubpage string if one was specified

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 163 of file SpecialBlock.php.

References MediaWiki\User\UserIdentity\getName().

◆ getDescription()

MediaWiki\Specials\SpecialBlock::getDescription ( )

Returns the name that goes in the \<h1\> in the special page itself, and also the name that will be listed in Special:Specialpages.

Derived classes can override this, but usually it is easier to keep the default behavior.

Returning a string from this method has been deprecated since 1.41.

Stability: stable
to override
Returns
string|Message

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 156 of file SpecialBlock.php.

◆ getDisplayFormat()

MediaWiki\Specials\SpecialBlock::getDisplayFormat ( )
protected

Get display format for the form.See HTMLForm documentation for available values.

Since
1.25
Returns
string

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 326 of file SpecialBlock.php.

◆ getFormFields()

MediaWiki\Specials\SpecialBlock::getFormFields ( )
protected

◆ getGroupName()

MediaWiki\Specials\SpecialBlock::getGroupName ( )
protected

Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-group-*' for valid names This method defaults to group 'other'.

Stability: stable
to override
Returns
string
Since
1.21

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 1208 of file SpecialBlock.php.

◆ getSuggestedDurations()

static MediaWiki\Specials\SpecialBlock::getSuggestedDurations ( ?Language $lang = null,
$includeOther = true )
static

Get an array of suggested block durations from MediaWiki:Ipboptions.

Todo
FIXME: This uses a rather odd syntax for the options, should it be converted to the standard "**<duration>|<displayname>" format?
Deprecated
since 1.42, use Language::getBlockDurations() instead, hard-deprecated since 1.43
Parameters
Language | null$langThe language to get the durations in, or null to use the wiki's content language
bool$includeOtherWhether to include the 'other' option in the list of suggestions
Returns
string[]

Definition at line 1124 of file SpecialBlock.php.

References wfDeprecated().

◆ getTargetUserTitle()

static MediaWiki\Specials\SpecialBlock::getTargetUserTitle ( $target)
staticprotected

Get a user page target for things like logs.

This handles account and IP range targets.

Parameters
UserIdentity | string | null$target
Returns
PageReference|null

Definition at line 895 of file SpecialBlock.php.

References NS_USER.

◆ maybeAlterFormDefaults()

MediaWiki\Specials\SpecialBlock::maybeAlterFormDefaults ( & $fields)
protected

If the user has already been blocked with similar settings, load that block and change the defaults for the form fields to match the existing settings.

Parameters
array&$fieldsHTMLForm descriptor array

Definition at line 588 of file SpecialBlock.php.

References MediaWiki\MainConfigNames\EnablePartialActionBlocks, MediaWiki\Block\Restriction\PageRestriction\getTitle(), MediaWiki\Block\DatabaseBlock\getType(), wfEscapeWikiText(), and wfTimestamp().

◆ onSubmit()

MediaWiki\Specials\SpecialBlock::onSubmit ( array $data,
?HTMLForm $form = null )

Process the form on POST submission.

Parameters
array$data
HTMLForm | null$form
Returns
bool|string|array|Status As documented for HTMLForm::trySubmit.

Definition at line 1167 of file SpecialBlock.php.

◆ onSuccess()

MediaWiki\Specials\SpecialBlock::onSuccess ( )

Do something exciting on successful processing of the form, most likely to show a confirmation message.

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 1180 of file SpecialBlock.php.

References wfEscapeWikiText().

◆ parseExpiryInput()

static MediaWiki\Specials\SpecialBlock::parseExpiryInput ( $expiry)
static

Convert a submitted expiry time, which may be relative ("2 weeks", etc) or absolute ("24 May 2034", etc), into an absolute timestamp we can put into the database.

Deprecated
since 1.36, use BlockUser::parseExpiryInput instead, hard-deprecated since 1.43
Parameters
string$expiryWhatever was typed into the form
Returns
string|bool Timestamp or 'infinity' or false on error.

Definition at line 1140 of file SpecialBlock.php.

References wfDeprecated().

◆ postHtml()

MediaWiki\Specials\SpecialBlock::postHtml ( )
protected

Add footer elements to the form.

Returns
string

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 790 of file SpecialBlock.php.

References getTitle(), and wfEscapeWikiText().

◆ prefixSearchSubpages()

MediaWiki\Specials\SpecialBlock::prefixSearchSubpages ( $search,
$limit,
$offset )

Return an array of subpages beginning with $search that this special page will accept.

Parameters
string$searchPrefix to search for
int$limitMaximum number of results to return (usually 10)
int$offsetNumber of results to skip (usually 0)
Returns
string[] Matching subpages

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 1194 of file SpecialBlock.php.

◆ preHtml()

MediaWiki\Specials\SpecialBlock::preHtml ( )
protected

Add header elements like block log entries, etc.

Returns
string

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 739 of file SpecialBlock.php.

◆ processForm()

static MediaWiki\Specials\SpecialBlock::processForm ( array $data,
IContextSource $context )
static

Given the form data, actually implement a block.

Deprecated
since 1.36, use BlockUserFactory service instead, hard-deprecated since 1.43
Parameters
array$data
IContextSource$context
Returns
bool|string|array|Status

Definition at line 946 of file SpecialBlock.php.

References MediaWiki\Context\IContextSource\getAuthority(), and wfDeprecated().

◆ requiresUnblock()

MediaWiki\Specials\SpecialBlock::requiresUnblock ( )

We allow certain special cases where user is blocked.

Returns
bool

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 205 of file SpecialBlock.php.

◆ setParameter()

MediaWiki\Specials\SpecialBlock::setParameter ( $par)
protected

Handle some magic here.

Parameters
string$par

Reimplemented from MediaWiki\SpecialPage\FormSpecialPage.

Definition at line 214 of file SpecialBlock.php.

References wfIsInfinity().

Member Data Documentation

◆ $alreadyBlocked

bool MediaWiki\Specials\SpecialBlock::$alreadyBlocked
protected

Definition at line 97 of file SpecialBlock.php.

◆ $codexFormData

array array MediaWiki\Specials\SpecialBlock::$codexFormData = []
protected

<mixed,mixed> An associative array used to pass vars to Codex form

Definition at line 113 of file SpecialBlock.php.

◆ $preErrors

MessageSpecifier [] MediaWiki\Specials\SpecialBlock::$preErrors = []
protected

Definition at line 102 of file SpecialBlock.php.

◆ $previousTarget

User string MediaWiki\Specials\SpecialBlock::$previousTarget
protected

The previous block target.

Definition at line 91 of file SpecialBlock.php.

◆ $requestedHideUser

bool MediaWiki\Specials\SpecialBlock::$requestedHideUser
protected

Whether the previous submission of the form asked for HideUser.

Definition at line 94 of file SpecialBlock.php.

◆ $target

UserIdentity string null MediaWiki\Specials\SpecialBlock::$target
protected

User to be blocked, as passed either by parameter (url?wpTarget=Foo) or as subpage (Special:Block/Foo)

Definition at line 85 of file SpecialBlock.php.

◆ $type

int MediaWiki\Specials\SpecialBlock::$type
protected

DatabaseBlock::TYPE_ constant.

Definition at line 88 of file SpecialBlock.php.

◆ $useCodex

bool bool MediaWiki\Specials\SpecialBlock::$useCodex = false
protected

Definition at line 105 of file SpecialBlock.php.

◆ $useMultiblocks

bool bool MediaWiki\Specials\SpecialBlock::$useMultiblocks = false
protected

Definition at line 108 of file SpecialBlock.php.


The documentation for this class was generated from the following file: