MediaWiki  master
SpecialUndelete Class Reference

Special page allowing users with the appropriate permissions to view and restore deleted content. More...

Inheritance diagram for SpecialUndelete:
Collaboration diagram for SpecialUndelete:

Public Member Functions

 __construct (PermissionManager $permissionManager, RevisionStore $revisionStore, RevisionRenderer $revisionRenderer, IContentHandlerFactory $contentHandlerFactory, NameTableStore $changeTagDefStore, LinkBatchFactory $linkBatchFactory, RepoGroup $repoGroup, ILoadBalancer $loadBalancer, UserOptionsLookup $userOptionsLookup, WikiPageFactory $wikiPageFactory, SearchEngineFactory $searchEngineFactory, UndeletePageFactory $undeletePageFactory)
 
 checkPermissions ()
 Checks if userCanExecute, and if not throws a PermissionsError.
Stability: stable
to override
Since
1.19
Returns
void|never
Exceptions
PermissionsError
More...
 
 doesWrites ()
 Indicates whether this special page may perform database writes. More...
 
 execute ( $par)
 Default execute method Checks user permissions. More...
 
 prefixSearchSubpages ( $search, $limit, $offset)
 Return an array of subpages beginning with $search that this special page will accept. More...
 
 userCanExecute (User $user)
 Checks if the given user (identified by an object) can execute this special page (as defined by $mRestriction). More...
 
- Public Member Functions inherited from 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. More...
 
 addHelpLink ( $to, $overrideBaseUrl=false)
 Adds help link with an icon via page indicators. More...
 
 checkReadOnly ()
 If the wiki is currently in readonly mode, throws a ReadOnlyError. More...
 
 getAuthority ()
 Shortcut to get the Authority executing this instance. More...
 
 getConfig ()
 Shortcut to get main config object. More...
 
 getContentLanguage ()
 Shortcut to get content language. More...
 
 getContext ()
 Gets the context this SpecialPage is executed in. More...
 
 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. More...
 
 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. More...
 
 getFullTitle ()
 Return the full title, including $par. More...
 
 getLanguage ()
 Shortcut to get user's language. More...
 
 getLinkRenderer ()
 
 getLocalName ()
 Get the localised name of the special page. More...
 
 getName ()
 Get the name of this Special Page. More...
 
 getOutput ()
 Get the OutputPage being used for this instance. More...
 
 getPageTitle ( $subpage=false)
 Get a self-referential title object. More...
 
 getRequest ()
 Get the WebRequest being used for this instance. More...
 
 getRestriction ()
 Get the permission that a user must have to execute this page. More...
 
 getSkin ()
 Shortcut to get the skin being used for this instance. More...
 
 getUser ()
 Shortcut to get the User executing this instance. More...
 
 including ( $x=null)
 Whether the special page is being evaluated via transclusion. More...
 
 isCached ()
 Is this page cached? Expensive pages are cached or disabled in miser mode. More...
 
 isExpensive ()
 Is this page expensive (for some definition of expensive)? Expensive pages are disabled or cached in miser mode. More...
 
 isIncludable ()
 Whether it's allowed to transclude the special page via {{Special:Foo/params}}. More...
 
 isListed ()
 Whether this special page is listed in Special:SpecialPages. More...
 
 isRestricted ()
 Can be overridden by subclasses with more complicated permissions schemes. More...
 
 listed ( $x=null)
 Get or set whether this special page is listed in Special:SpecialPages. More...
 
 maxIncludeCacheTime ()
 How long to cache page when it is being included. More...
 
 msg ( $key,... $params)
 Wrapper around wfMessage that sets the current context. More...
 
 requireLogin ( $reasonMsg='exception-nologin-text', $titleMsg='exception-nologin')
 If the user is not logged in, throws UserNotLoggedIn error. More...
 
 run ( $subPage)
 Entry point. More...
 
 setContentLanguage (Language $contentLanguage)
 Set content language. More...
 
 setContext ( $context)
 Sets the context this SpecialPage is executed in. More...
 
 setHookContainer (HookContainer $hookContainer)
 
 setLinkRenderer (LinkRenderer $linkRenderer)
 
 setListed ( $listed)
 Set whether this page is listed in Special:Specialpages, at run-time. More...
 
 setSpecialPageFactory (SpecialPageFactory $specialPageFactory)
 

Protected Member Functions

 formatRevisionRow ( $row, $earliestLiveTime, $remaining)
 
 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'. More...
 
 isAllowed ( $permission, User $user=null)
 Checks whether a user is allowed the permission for the specific title if one is set. More...
 
 showHistory ()
 
- Protected Member Functions inherited from SpecialPage
 addFeedLinks ( $params)
 Adds RSS/atom links. More...
 
 afterExecute ( $subPage)
 Gets called after. More...
 
 beforeExecute ( $subPage)
 Gets called before. More...
 
 buildPrevNextNavigation ( $offset, $limit, array $query=[], $atend=false, $subpage=false)
 Generate (prev x| next x) (20|50|100...) type links for paging. More...
 
 checkLoginSecurityLevel ( $level=null)
 Verifies that the user meets the security level, possibly reauthenticating them in the process. More...
 
 displayRestrictionError ()
 Output an error message telling the user what access level they have to have. More...
 
 getAuthManager ()
 
 getCacheTTL ()
 
 getHookContainer ()
 
 getHookRunner ()
 
 getLanguageConverter ()
 Shortcut to get language's converter. More...
 
 getLoginSecurityLevel ()
 Tells if the special page does something security-sensitive and needs extra defense against a stolen account (e.g. More...
 
 getRobotPolicy ()
 Return the robot policy. More...
 
 getSpecialPageFactory ()
 
 getSubpagesForPrefixSearch ()
 Return an array of subpages that this special page will accept for prefix searches. More...
 
 outputHeader ( $summaryMessageKey='')
 Outputs a summary message on top of special pages Per default the message key is the canonical name of the special page May be overridden, i.e. More...
 
 prefixSearchString ( $search, $limit, $offset, SearchEngineFactory $searchEngineFactory=null)
 Perform a regular substring search for prefixSearchSubpages. More...
 
 setAuthManager (AuthManager $authManager)
 Set the injected AuthManager from the special page constructor. More...
 
 setHeaders ()
 Sets headers - this should be called from the execute() method of all derived classes! More...
 
 setReauthPostData (array $data)
 Record preserved POST data after a reauthentication. More...
 
 useTransactionalTimeLimit ()
 Call wfTransactionalTimeLimit() if this request was POSTed. More...
 

Private Member Functions

 diffHeader (RevisionRecord $revRecord, $prefix)
 
 formatFileRow ( $row)
 
 getFileComment ( $file)
 Fetch file upload comment if it's available to this user. More...
 
 getFileLink ( $file, $titleObj, $ts, $key)
 Fetch image view link if it's available to all users. More...
 
 getFileUser ( $file)
 Fetch file's user id if it's available to this user. More...
 
 getPageLink (RevisionRecord $revRecord, $titleObj, $ts)
 Fetch revision text link if it's available to all users. More...
 
 loadRequest ( $par)
 
 redirectToRevDel ()
 Convert submitted form data to format expected by RevisionDelete and redirect the request. More...
 
 showDiff (RevisionRecord $previousRevRecord, RevisionRecord $currentRevRecord)
 Build a diff display between this and the previous either deleted or non-deleted edit. More...
 
 showFile ( $key)
 Show a deleted file version requested by the visitor. More...
 
 showFileConfirmationForm ( $key)
 Show a form confirming whether a tokenless user really wants to see a file. More...
 
 showList ( $result)
 Generic list of deleted pages. More...
 
 showRevision ( $timestamp)
 
 showSearchForm ()
 
 undelete ()
 

Private Attributes

NameTableStore $changeTagDefStore
 
IContentHandlerFactory $contentHandlerFactory
 
LinkBatchFactory $linkBatchFactory
 
ILoadBalancer $loadBalancer
 
LocalRepo $localRepo
 
 $mAction
 
 $mAllowed
 
 $mCanView
 
string $mComment = ''
 
bool null $mDiff
 
bool null $mDiffOnly
 
 $mFilename
 
int[] $mFileVersions = []
 
 $mInvert
 
bool null $mPreview
 
 $mRestore
 
 $mRevdel
 
string $mSearchPrefix
 Search prefix. More...
 
 $mTarget
 
Title null $mTargetObj
 
string[] $mTargetTimestamp = []
 
 $mTimestamp
 
 $mToken
 
bool null $mUnsuppress
 
PermissionManager $permissionManager
 
RevisionRenderer $revisionRenderer
 
RevisionStore $revisionStore
 
SearchEngineFactory $searchEngineFactory
 
UndeletePageFactory $undeletePageFactory
 
UserOptionsLookup $userOptionsLookup
 
WikiPageFactory $wikiPageFactory
 

Additional Inherited Members

- Static Public Member Functions inherited from SpecialPage
static getSafeTitleFor ( $name, $subpage=false)
 Get a localised Title object for a page name with a possibly unvalidated subpage. More...
 
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. More...
 
static getTitleValueFor ( $name, $subpage=false, $fragment='')
 Get a localised TitleValue object for a specified special page name. More...
 
- Static Protected Member Functions inherited from 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). More...
 
- Protected Attributes inherited from SpecialPage
IContextSource $mContext
 Current request context. More...
 
bool $mIncludable
 Whether the special page can be included in an article. More...
 
bool $mIncluding
 Whether or not this special page is being included from an article. More...
 
string $mName
 The canonical name of this special page Also used for the default. More...
 
string $mRestriction
 Minimum user level required to access this page, or "" for anyone. More...
 

Detailed Description

Special page allowing users with the appropriate permissions to view and restore deleted content.

Definition at line 46 of file SpecialUndelete.php.

Constructor & Destructor Documentation

◆ __construct()

SpecialUndelete::__construct ( PermissionManager  $permissionManager,
RevisionStore  $revisionStore,
RevisionRenderer  $revisionRenderer,
IContentHandlerFactory  $contentHandlerFactory,
NameTableStore  $changeTagDefStore,
LinkBatchFactory  $linkBatchFactory,
RepoGroup  $repoGroup,
ILoadBalancer  $loadBalancer,
UserOptionsLookup  $userOptionsLookup,
WikiPageFactory  $wikiPageFactory,
SearchEngineFactory  $searchEngineFactory,
UndeletePageFactory  $undeletePageFactory 
)
Parameters
PermissionManager$permissionManager
RevisionStore$revisionStore
RevisionRenderer$revisionRenderer
IContentHandlerFactory$contentHandlerFactory
NameTableStore$changeTagDefStore
LinkBatchFactory$linkBatchFactory
RepoGroup$repoGroup
ILoadBalancer$loadBalancer
UserOptionsLookup$userOptionsLookup
WikiPageFactory$wikiPageFactory
SearchEngineFactory$searchEngineFactory
UndeletePageFactory$undeletePageFactory

Definition at line 129 of file SpecialUndelete.php.

References $changeTagDefStore, $contentHandlerFactory, $linkBatchFactory, $loadBalancer, $permissionManager, $revisionRenderer, $revisionStore, $searchEngineFactory, $undeletePageFactory, $userOptionsLookup, $wikiPageFactory, and RepoGroup\getLocalRepo().

Member Function Documentation

◆ checkPermissions()

SpecialUndelete::checkPermissions ( )

Checks if userCanExecute, and if not throws a PermissionsError.

Stability: stable
to override
Since
1.19
Returns
void|never
Exceptions
PermissionsError

Reimplemented from SpecialPage.

Definition at line 258 of file SpecialUndelete.php.

References SpecialPage\displayRestrictionError(), SpecialPage\getUser(), and userCanExecute().

Referenced by execute().

◆ diffHeader()

◆ doesWrites()

SpecialUndelete::doesWrites ( )

Indicates whether this special page may perform database writes.

Stability: stable
to override
Returns
bool
Since
1.27

Reimplemented from SpecialPage.

Definition at line 158 of file SpecialUndelete.php.

◆ execute()

SpecialUndelete::execute (   $subPage)

Default execute method Checks user permissions.

This must be overridden by subclasses; it will be made abstract in a future version

Stability: stable
to override
Parameters
string | null$subPage

Reimplemented from SpecialPage.

Definition at line 280 of file SpecialUndelete.php.

References $file, SpecialPage\addHelpLink(), checkPermissions(), File\DELETED_FILE, File\DELETED_RESTRICTED, SpecialPage\getOutput(), SpecialPage\getSkin(), SpecialPage\getUser(), loadRequest(), SpecialPage\msg(), NS_FILE, SpecialPage\outputHeader(), redirectToRevDel(), SpecialPage\setHeaders(), showFile(), showFileConfirmationForm(), showHistory(), showRevision(), showSearchForm(), undelete(), and SpecialPage\useTransactionalTimeLimit().

◆ formatFileRow()

◆ formatRevisionRow()

◆ getFileComment()

SpecialUndelete::getFileComment (   $file)
private

Fetch file upload comment if it's available to this user.

Parameters
File | ArchivedFile$file
Returns
string HTML fragment

Definition at line 1326 of file SpecialUndelete.php.

References $file, Linker\commentBlock(), File\DELETED_COMMENT, File\FOR_THIS_USER, SpecialPage\getAuthority(), SpecialPage\msg(), and Html\rawElement().

Referenced by formatFileRow().

◆ getFileLink()

SpecialUndelete::getFileLink (   $file,
  $titleObj,
  $ts,
  $key 
)
private

Fetch image view link if it's available to all users.

Parameters
File | ArchivedFile$file
Title$titleObj
string$tsA timestamp
string$keyA storage key
Returns
string HTML fragment

Definition at line 1259 of file SpecialUndelete.php.

References $file, File\DELETED_FILE, SpecialPage\getLanguage(), SpecialPage\getLinkRenderer(), SpecialPage\getUser(), and Html\rawElement().

Referenced by formatFileRow().

◆ getFileUser()

SpecialUndelete::getFileUser (   $file)
private

Fetch file's user id if it's available to this user.

Parameters
File | ArchivedFile$file
Returns
string HTML fragment

Definition at line 1296 of file SpecialUndelete.php.

References $file, File\DELETED_USER, File\FOR_THIS_USER, SpecialPage\getAuthority(), SpecialPage\msg(), Html\rawElement(), Linker\userLink(), and Linker\userToolLinks().

Referenced by formatFileRow().

◆ getGroupName()

SpecialUndelete::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 SpecialPage.

Definition at line 1416 of file SpecialUndelete.php.

◆ getPageLink()

SpecialUndelete::getPageLink ( RevisionRecord  $revRecord,
  $titleObj,
  $ts 
)
private

Fetch revision text link if it's available to all users.

Parameters
RevisionRecord$revRecord
Title$titleObj
string$tsTimestamp
Returns
string

Definition at line 1217 of file SpecialUndelete.php.

References SpecialPage\getLanguage(), SpecialPage\getLinkRenderer(), Linker\getRevisionDeletedClass(), SpecialPage\getUser(), MediaWiki\Revision\RevisionRecord\isDeleted(), Html\rawElement(), and MediaWiki\Revision\RevisionRecord\userCan().

Referenced by formatRevisionRow().

◆ isAllowed()

SpecialUndelete::isAllowed (   $permission,
User  $user = null 
)
protected

Checks whether a user is allowed the permission for the specific title if one is set.

Parameters
string$permission
User | null$user
Returns
bool

Definition at line 238 of file SpecialUndelete.php.

References SpecialPage\getUser().

Referenced by formatFileRow(), loadRequest(), and userCanExecute().

◆ loadRequest()

SpecialUndelete::loadRequest (   $par)
private

◆ prefixSearchSubpages()

SpecialUndelete::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 SpecialPage.

Definition at line 1412 of file SpecialUndelete.php.

References SpecialPage\prefixSearchString().

◆ redirectToRevDel()

SpecialUndelete::redirectToRevDel ( )
private

Convert submitted form data to format expected by RevisionDelete and redirect the request.

Definition at line 348 of file SpecialUndelete.php.

References $matches, SpecialPage\getOutput(), SpecialPage\getRequest(), and SpecialPage\getTitleFor().

Referenced by execute().

◆ showDiff()

SpecialUndelete::showDiff ( RevisionRecord  $previousRevRecord,
RevisionRecord  $currentRevRecord 
)
private

Build a diff display between this and the previous either deleted or non-deleted edit.

Parameters
RevisionRecord$previousRevRecord
RevisionRecord$currentRevRecord

Definition at line 704 of file SpecialUndelete.php.

References diffHeader(), SpecialPage\getContext(), SpecialPage\getOutput(), MediaWiki\Revision\RevisionRecord\getPageAsLinkTarget(), MediaWiki\Revision\RevisionRecord\getSlot(), and Title\newFromLinkTarget().

Referenced by showRevision().

◆ showFile()

SpecialUndelete::showFile (   $key)
private

Show a deleted file version requested by the visitor.

Parameters
string$key

Definition at line 839 of file SpecialUndelete.php.

References $path, SpecialPage\getOutput(), and SpecialPage\getRequest().

Referenced by execute().

◆ showFileConfirmationForm()

SpecialUndelete::showFileConfirmationForm (   $key)
private

Show a form confirming whether a tokenless user really wants to see a file.

Parameters
string$key

Definition at line 811 of file SpecialUndelete.php.

References $file, $lang, SpecialPage\getLanguage(), SpecialPage\getOutput(), SpecialPage\getPageTitle(), SpecialPage\getUser(), Xml\openElement(), and Xml\submitButton().

Referenced by execute().

◆ showHistory()

◆ showList()

SpecialUndelete::showList (   $result)
private

◆ showRevision()

◆ showSearchForm()

◆ undelete()

◆ userCanExecute()

SpecialUndelete::userCanExecute ( User  $user)

Checks if the given user (identified by an object) can execute this special page (as defined by $mRestriction).

Can be overridden by sub- classes with more complicated permissions schemes.

Stability: stable
to override
Parameters
User$userThe user to check
Returns
bool Does the user have permission to view the page?

Reimplemented from SpecialPage.

Definition at line 251 of file SpecialUndelete.php.

References isAllowed().

Referenced by checkPermissions().

Member Data Documentation

◆ $changeTagDefStore

NameTableStore SpecialUndelete::$changeTagDefStore
private

Definition at line 92 of file SpecialUndelete.php.

Referenced by __construct().

◆ $contentHandlerFactory

IContentHandlerFactory SpecialUndelete::$contentHandlerFactory
private

Definition at line 89 of file SpecialUndelete.php.

Referenced by __construct().

◆ $linkBatchFactory

LinkBatchFactory SpecialUndelete::$linkBatchFactory
private

Definition at line 95 of file SpecialUndelete.php.

Referenced by __construct().

◆ $loadBalancer

ILoadBalancer SpecialUndelete::$loadBalancer
private

Definition at line 101 of file SpecialUndelete.php.

Referenced by __construct().

◆ $localRepo

LocalRepo SpecialUndelete::$localRepo
private

Definition at line 98 of file SpecialUndelete.php.

◆ $mAction

SpecialUndelete::$mAction
private

Definition at line 47 of file SpecialUndelete.php.

◆ $mAllowed

SpecialUndelete::$mAllowed
private

Definition at line 56 of file SpecialUndelete.php.

◆ $mCanView

SpecialUndelete::$mCanView
private

Definition at line 57 of file SpecialUndelete.php.

◆ $mComment

string SpecialUndelete::$mComment = ''
private

Definition at line 59 of file SpecialUndelete.php.

◆ $mDiff

bool null SpecialUndelete::$mDiff
private

Definition at line 64 of file SpecialUndelete.php.

◆ $mDiffOnly

bool null SpecialUndelete::$mDiffOnly
private

Definition at line 66 of file SpecialUndelete.php.

◆ $mFilename

SpecialUndelete::$mFilename
private

Definition at line 53 of file SpecialUndelete.php.

◆ $mFileVersions

int [] SpecialUndelete::$mFileVersions = []
private

Definition at line 70 of file SpecialUndelete.php.

◆ $mInvert

SpecialUndelete::$mInvert
private

Definition at line 52 of file SpecialUndelete.php.

◆ $mPreview

bool null SpecialUndelete::$mPreview
private

Definition at line 62 of file SpecialUndelete.php.

◆ $mRestore

SpecialUndelete::$mRestore
private

Definition at line 50 of file SpecialUndelete.php.

◆ $mRevdel

SpecialUndelete::$mRevdel
private

Definition at line 51 of file SpecialUndelete.php.

◆ $mSearchPrefix

string SpecialUndelete::$mSearchPrefix
private

Search prefix.

Definition at line 77 of file SpecialUndelete.php.

◆ $mTarget

SpecialUndelete::$mTarget
private

Definition at line 48 of file SpecialUndelete.php.

◆ $mTargetObj

Title null SpecialUndelete::$mTargetObj
private

Definition at line 73 of file SpecialUndelete.php.

◆ $mTargetTimestamp

string [] SpecialUndelete::$mTargetTimestamp = []
private

Definition at line 55 of file SpecialUndelete.php.

◆ $mTimestamp

SpecialUndelete::$mTimestamp
private

Definition at line 49 of file SpecialUndelete.php.

◆ $mToken

SpecialUndelete::$mToken
private

Definition at line 60 of file SpecialUndelete.php.

◆ $mUnsuppress

bool null SpecialUndelete::$mUnsuppress
private

Definition at line 68 of file SpecialUndelete.php.

◆ $permissionManager

PermissionManager SpecialUndelete::$permissionManager
private

Definition at line 80 of file SpecialUndelete.php.

Referenced by __construct().

◆ $revisionRenderer

RevisionRenderer SpecialUndelete::$revisionRenderer
private

Definition at line 86 of file SpecialUndelete.php.

Referenced by __construct().

◆ $revisionStore

RevisionStore SpecialUndelete::$revisionStore
private

Definition at line 83 of file SpecialUndelete.php.

Referenced by __construct().

◆ $searchEngineFactory

SearchEngineFactory SpecialUndelete::$searchEngineFactory
private

Definition at line 110 of file SpecialUndelete.php.

Referenced by __construct().

◆ $undeletePageFactory

UndeletePageFactory SpecialUndelete::$undeletePageFactory
private

Definition at line 113 of file SpecialUndelete.php.

Referenced by __construct().

◆ $userOptionsLookup

UserOptionsLookup SpecialUndelete::$userOptionsLookup
private

Definition at line 104 of file SpecialUndelete.php.

Referenced by __construct().

◆ $wikiPageFactory

WikiPageFactory SpecialUndelete::$wikiPageFactory
private

Definition at line 107 of file SpecialUndelete.php.

Referenced by __construct().


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