/** * Fetch file upload comment if it's available to this user * * @param File|ArchivedFile $file * @return string HTML fragment */ function getFileComment($file) { if (!$file->userCan(File::DELETED_COMMENT, $this->getUser())) { return '<span class="history-deleted"><span class="comment">' . $this->msg('rev-deleted-comment')->escaped() . '</span></span>'; } $link = Linker::commentBlock($file->getRawDescription()); if ($file->isDeleted(File::DELETED_COMMENT)) { $link = '<span class="history-deleted">' . $link . '</span>'; } return $link; }
function execute($par) { $this->checkPermissions(); $user = $this->getUser(); $this->setHeaders(); $this->outputHeader(); $this->loadRequest($par); $out = $this->getOutput(); if (is_null($this->mTargetObj)) { $out->addWikiMsg('undelete-header'); # Not all users can just browse every deleted page from the list if ($user->isAllowed('browsearchive')) { $this->showSearchForm(); } return; } if ($this->mAllowed) { $out->setPageTitle($this->msg('undeletepage')); } else { $out->setPageTitle($this->msg('viewdeletedpage')); } $this->getSkin()->setRelevantTitle($this->mTargetObj); if ($this->mTimestamp !== '') { $this->showRevision($this->mTimestamp); } elseif ($this->mFilename !== null) { $file = new ArchivedFile($this->mTargetObj, '', $this->mFilename); // Check if user is allowed to see this file if (!$file->exists()) { $out->addWikiMsg('filedelete-nofile', $this->mFilename); } elseif (!$file->userCan(File::DELETED_FILE, $user)) { if ($file->isDeleted(File::DELETED_RESTRICTED)) { throw new PermissionsError('suppressrevision'); } else { throw new PermissionsError('deletedtext'); } } elseif (!$user->matchEditToken($this->mToken, $this->mFilename)) { $this->showFileConfirmationForm($this->mFilename); } else { $this->showFile($this->mFilename); } } elseif ($this->mRestore && $this->mAction == 'submit') { $this->undelete(); } else { $this->showHistory(); } }
/** * Wrap and format the given file's comment block, if the current * user is allowed to view it. * * @param ArchivedFile $file * @return string HTML */ private function fileComment($file) { if ($file->userCan(File::DELETED_COMMENT)) { $block = $this->skin->commentBlock($file->description); } else { $block = ' ' . wfMsgHtml('rev-deleted-comment'); } if ($file->isDeleted(File::DELETED_COMMENT)) { return "<span class=\"history-deleted\">{$block}</span>"; } return $block; }
function execute($par) { $this->setHeaders(); if (!$this->userCanExecute($this->getUser())) { $this->displayRestrictionError(); return; } $this->outputHeader(); $this->loadRequest(); $out = $this->getOutput(); if ($this->mAllowed) { $out->setPageTitle(wfMsg('undeletepage')); } else { $out->setPageTitle(wfMsg('viewdeletedpage')); } if ($par != '') { $this->mTarget = $par; } if ($this->mTarget !== '') { $this->mTargetObj = Title::newFromURL($this->mTarget); $this->getSkin()->setRelevantTitle($this->mTargetObj); } else { $this->mTargetObj = null; } if (is_null($this->mTargetObj)) { # Not all users can just browse every deleted page from the list if ($this->getUser()->isAllowed('browsearchive')) { $this->showSearchForm(); # List undeletable articles if ($this->mSearchPrefix) { $result = PageArchive::listPagesByPrefix($this->mSearchPrefix); $this->showList($result); } } else { $out->addWikiMsg('undelete-header'); } return; } if ($this->mTimestamp !== '') { return $this->showRevision($this->mTimestamp); } if ($this->mFilename !== null) { $file = new ArchivedFile($this->mTargetObj, '', $this->mFilename); // Check if user is allowed to see this file if (!$file->exists()) { $out->addWikiMsg('filedelete-nofile', $this->mFilename); return; } elseif (!$file->userCan(File::DELETED_FILE)) { if ($file->isDeleted(File::DELETED_RESTRICTED)) { $out->permissionRequired('suppressrevision'); } else { $out->permissionRequired('deletedtext'); } return false; } elseif (!$this->getUser()->matchEditToken($this->mToken, $this->mFilename)) { $this->showFileConfirmationForm($this->mFilename); return false; } else { return $this->showFile($this->mFilename); } } if ($this->mRestore && $this->mAction == 'submit') { global $wgUploadMaintenance; if ($wgUploadMaintenance && $this->mTargetObj && $this->mTargetObj->getNamespace() == NS_FILE) { $out->wrapWikiMsg("<div class='error'>\n\$1\n</div>\n", array('filedelete-maintenance')); return; } return $this->undelete(); } if ($this->mInvert && $this->mAction == 'submit') { return $this->showHistory(); } return $this->showHistory(); }