array( 'known', 'noclasses' )
);
- $cdel = '';
-
- // User can delete revisions or view deleted revisions...
- $canHide = $wgUser->isAllowed( 'deleterevision' );
- if ( $canHide || ( $revision->getVisibility() && $wgUser->isAllowed( 'deletedhistory' ) ) ) {
- if ( !$revision->userCan( Revision::DELETED_RESTRICTED ) ) {
- $cdel = Linker::revDeleteLinkDisabled( $canHide ); // rev was hidden from Sysops
- } else {
- $query = array(
- 'type' => 'revision',
- 'target' => $this->getTitle()->getPrefixedDbkey(),
- 'ids' => $oldid
- );
- $cdel = Linker::revDeleteLink( $query, $revision->isDeleted( File::DELETED_RESTRICTED ), $canHide );
- }
+ $cdel = Linker::getRevDeleteLink( $wgUser, $revision, $this->getTitle() );
+ if ( $cdel !== '' ) {
$cdel .= ' ';
}
*/
public static function getRevDeleteLink( User $user, Revision $rev, Title $title ) {
$canHide = $user->isAllowed( 'deleterevision' );
- if ( $canHide || ( $rev->getVisibility() && $user->isAllowed( 'deletedhistory' ) ) ) {
- if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
- $revdlink = Linker::revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
+ if ( !$canHide && !( $rev->getVisibility() && $user->isAllowed( 'deletedhistory' ) ) ) {
+ return '';
+ }
+
+ if ( !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) {
+ return Linker::revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
+ } else {
+ if ( $rev->getId() ) {
+ // RevDelete links using revision ID are stable across
+ // page deletion and undeletion; use when possible.
+ $query = array(
+ 'type' => 'revision',
+ 'target' => $title->getPrefixedDBkey(),
+ 'ids' => $rev->getId()
+ );
} else {
- if ( $rev->getId() ) {
- // RevDelete links using revision ID are stable across
- // page deletion and undeletion; use when possible.
- $query = array(
- 'type' => 'revision',
- 'target' => $title->getPrefixedDBkey(),
- 'ids' => $rev->getId()
- );
- } else {
- // Older deleted entries didn't save a revision ID.
- // We have to refer to these by timestamp, ick!
- $query = array(
- 'type' => 'archive',
- 'target' => $title->getPrefixedDBkey(),
- 'ids' => $rev->getTimestamp()
- );
- }
- return Linker::revDeleteLink( $query,
- $rev->isDeleted( File::DELETED_RESTRICTED ), $canHide );
+ // Older deleted entries didn't save a revision ID.
+ // We have to refer to these by timestamp, ick!
+ $query = array(
+ 'type' => 'archive',
+ 'target' => $title->getPrefixedDBkey(),
+ 'ids' => $rev->getTimestamp()
+ );
}
+ return Linker::revDeleteLink( $query,
+ $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
}
- return '';
}
/**
* @return String
*/
protected function revisionDeleteLink( $rev ) {
- $link = '';
- $user = $this->getUser();
- $canHide = $user->isAllowed( 'deleterevision' );
- // Show del/undel link if:
- // (a) the user can delete revisions, or
- // (b) the user can view deleted revision *and* this one is deleted
- if ( $canHide || ( $rev->getVisibility() && $user->isAllowed( 'deletedhistory' ) ) ) {
- if ( !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) {
- $link = Linker::revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
- } else {
- $query = array(
- 'type' => 'revision',
- 'target' => $rev->getTitle()->getPrefixedDBkey(),
- 'ids' => $rev->getId()
- );
- $link = Linker::revDeleteLink( $query,
- $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
- }
+ $link = Linker::getRevDeleteLink( $this->getUser(), $rev, $rev->getTitle() );
+ if ( $link !== '' ) {
$link = '   ' . $link . ' ';
}
return $link;
$mflag = '';
}
- // Don't show useless link to people who cannot hide revisions
- $canHide = $user->isAllowed( 'deleterevision' );
- if ( $canHide || ( $rev->getVisibility() && $user->isAllowed( 'deletedhistory' ) ) ) {
- if ( !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) {
- $del = Linker::revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops
- } else {
- $query = array(
- 'type' => 'revision',
- 'target' => $page->getPrefixedDbkey(),
- 'ids' => $rev->getId()
- );
- $del = Linker::revDeleteLink( $query,
- $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide );
- }
+ $del = Linker::getRevDeleteLink( $user, $rev, $page );
+ if ( $del !== '' ) {
$del .= ' ';
- } else {
- $del = '';
}
$diffHistLinks = '(' . $difftext . $this->messages['pipe-separator'] . $histlink . ')';