*/
class UndeleteForm {
var $mAction, $mTarget, $mTimestamp, $mRestore, $mTargetObj;
- var $mTargetTimestamp;
+ var $mTargetTimestamp, $mAllowed;
function UndeleteForm( &$request, $par = "" ) {
global $wgUser;
if( $par != "" ) {
$this->mTarget = $par;
}
+ if ( $wgUser->isAllowed( 'delete' ) ) {
+ $this->mAllowed = true;
+ } else {
+ $this->mAllowed = false;
+ $this->mTimestamp = '';
+ $this->mRestore = false;
+ }
if ( $this->mTarget !== "" ) {
$this->mTargetObj = Title::newFromURL( $this->mTarget );
} else {
}
function execute() {
+ global $wgOut;
+
if( is_null( $this->mTargetObj ) ) {
return $this->showList();
}
# List undeletable articles
$result = PageArchive::listAllPages();
- $wgOut->setPagetitle( wfMsg( "undeletepage" ) );
+ if ( $this->mAllowed ) {
+ $wgOut->setPagetitle( wfMsg( "undeletepage" ) );
+ } else {
+ $wgOut->setPagetitle( wfMsg( "viewdeletedpage" ) );
+ }
$wgOut->addWikiText( wfMsg( "undeletepagetext" ) );
$sk = $wgUser->getSkin();
global $wgLang, $wgUser, $wgOut;
$sk = $wgUser->getSkin();
- $wgOut->setPagetitle( wfMsg( "undeletepage" ) );
+ if ( $this->mAllowed ) {
+ $wgOut->setPagetitle( wfMsg( "undeletepage" ) );
+ } else {
+ $wgOut->setPagetitle( wfMsg( 'viewdeletedpage' ) );
+ }
$archive = new PageArchive( $this->mTargetObj );
$text = $archive->getLastRevisionText();
$wgOut->addWikiText( wfMsg( "nohistory" ) );
return;
}
- $wgOut->addWikiText( wfMsg( "undeletehistory" ) . "\n----\n" . $text );
+ if ( $this->mAllowed ) {
+ $wgOut->addWikiText( wfMsg( "undeletehistory" ) . "\n----\n" . $text );
+ }
# List all stored revisions
$revisions = $archive->listRevisions();
- $titleObj = Title::makeTitle( NS_SPECIAL, "Undelete" );
- $action = $titleObj->escapeLocalURL( "action=submit" );
- $encTarget = htmlspecialchars( $this->mTarget );
- $button = htmlspecialchars( wfMsg("undeletebtn") );
- $token = htmlspecialchars( $wgUser->editToken() );
-
- $wgOut->addHTML("
- <form id=\"undelete\" method=\"post\" action=\"{$action}\">
- <input type=\"hidden\" name=\"target\" value=\"{$encTarget}\" />
- <input type=\"submit\" name=\"restore\" value=\"{$button}\" />
- <input type='hidden' name='wpEditToken' value=\"{$token}\" />
- ");
+ if ( $this->mAllowed ) {
+ $titleObj = Title::makeTitle( NS_SPECIAL, "Undelete" );
+ $action = $titleObj->escapeLocalURL( "action=submit" );
+ $encTarget = htmlspecialchars( $this->mTarget );
+ $button = htmlspecialchars( wfMsg("undeletebtn") );
+ $token = htmlspecialchars( $wgUser->editToken() );
+
+ $wgOut->addHTML("
+ <form id=\"undelete\" method=\"post\" action=\"{$action}\">
+ <input type=\"hidden\" name=\"target\" value=\"{$encTarget}\" />
+ <input type=\"submit\" name=\"restore\" value=\"{$button}\" />
+ <input type='hidden' name='wpEditToken' value=\"{$token}\" />
+ ");
+ }
# Show relevant lines from the deletion log:
$wgOut->addHTML( "<h2>" . htmlspecialchars( LogPage::logName( 'delete' ) ) . "</h2>\n" );
$target = urlencode( $this->mTarget );
while( $row = $revisions->fetchObject() ) {
$ts = wfTimestamp( TS_MW, $row->ar_timestamp );
- $checkBox = "<input type=\"checkbox\" name=\"ts$ts\" value=\"1\" />";
- $pageLink = $sk->makeKnownLinkObj( $titleObj,
- $wgLang->timeanddate( $ts, true ),
- "target=$target×tamp=$ts" );
+ if ( $this->mAllowed ) {
+ $checkBox = "<input type=\"checkbox\" name=\"ts$ts\" value=\"1\" />";
+ $pageLink = $sk->makeKnownLinkObj( $titleObj,
+ $wgLang->timeanddate( $ts, true ),
+ "target=$target×tamp=$ts" );
+ } else {
+ $checkBox = '';
+ $pageLink = $wgLang->timeanddate( $ts, true );
+ }
$userLink = htmlspecialchars( $row->ar_user_text );
if( $row->ar_user ) {
$userLink = $sk->makeKnownLinkObj(
}
$revisions->free();
- $wgOut->addHTML("</ul>\n</form>");
+ $wgOut->addHTML("</ul>");
+ if ( $this->mAllowed ) {
+ $wgOut->addHTML( "\n</form>" );
+ }
return true;
}
'showtoc' => 'show',
'hidetoc' => 'hide',
'thisisdeleted' => "View or restore $1?",
+'viewdeleted' => 'View $1?',
'restorelink1' => 'one deleted edit',
'restorelink' => "$1 deleted edits",
'feedlinks' => 'Feed:',
'unprotectcomment' => 'Reason for unprotecting',
# Undelete
-'undelete' => 'Restore deleted page',
+'undelete' => 'View deleted pages',
'undeletepage' => 'View and restore deleted pages',
+'viewdeletedpage' => 'View deleted pages',
'undeletepagetext' => 'The following pages have been deleted but are still in the archive and
can be restored. The archive may be periodically cleaned out.',
'undeletearticle' => 'Restore deleted page',