$cdel='';
// Don't show useless link to people who cannot hide revisions
- if( $wgUser->isAllowed('deleterevision') || ($revision->getVisibility() && $wgUser->isAllowed('deletedrevision')) ) {
+ if( $wgUser->isAllowed('deleterevision') || ($revision->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
if( !$revision->userCan( Revision::DELETED_RESTRICTED ) ) {
// If revision was hidden from sysops
$cdel = wfMsgHtml( 'rev-delundel' );
* @return bool
*/
public static function userCan( $rc, $field ) {
- if( ( $rc->mAttribs['rc_deleted'] & $field ) == $field ) {
+ if( $rc->mAttribs['rc_deleted'] & $field ) {
global $wgUser;
- $permission = ( $rc->mAttribs['rc_deleted'] & Revision::DELETED_RESTRICTED ) == Revision::DELETED_RESTRICTED
+ $permission = ( $rc->mAttribs['rc_deleted'] & Revision::DELETED_RESTRICTED )
? 'suppressrevision'
- : 'deletedrevision';
+ : ( $field & Revision::DELETED_TEXT ) ? 'deletedtext' : 'deletedhistory';
wfDebug( "Checking for $permission due to $field match on {$rc->mAttribs['rc_deleted']}\n" );
return $wgUser->isAllowed( $permission );
} else {
$wgGroupPermissions['sysop']['delete'] = true;
$wgGroupPermissions['sysop']['bigdelete'] = true; // can be separately configured for pages with > $wgDeleteRevisionsLimit revs
$wgGroupPermissions['sysop']['deletedhistory'] = true; // can view deleted history entries, but not see or restore the text
-$wgGroupPermissions['sysop']['deletedcontent'] = true; // can view deleted revision text
-$wgGroupPermissions['sysop']['deletedrevision'] = true; // can view hidden revision items (user/comment/text)
+$wgGroupPermissions['sysop']['deletedtext'] = true; // can view deleted revision text
$wgGroupPermissions['sysop']['undelete'] = true;
$wgGroupPermissions['sysop']['editinterface'] = true;
$wgGroupPermissions['sysop']['editusercss'] = true;
if( $status->ok ) {
// Need to do a log item
$log = new LogPage( 'delete' );
- $logComment = wfMsgForContent( 'deletedrevision', $oldimage );
+ $logComment = wfMsgForContent( 'deletedhistory', $oldimage );
if( trim( $reason ) != '' )
$logComment .= ": {$reason}";
$log->addEntry( 'delete', $title, $logComment );
$s .= Xml::hidden( 'title', $this->title->getPrefixedDbKey() ) . "\n";
$this->buttons = '<div>';
- if( $wgUser->isAllowed('deletedrevision') ) {
+ if( $wgUser->isAllowed('deletedhistory') ) {
$this->buttons .= Xml::element( 'button',
array(
'type' => 'submit',
$s = "($curlink) ($lastlink) $diffButtons";
- if( $wgUser->isAllowed( 'deletedrevision' ) ) {
+ if( $wgUser->isAllowed( 'deletedhistory' ) ) {
// Don't show useless link to people who cannot hide revisions
if( !$rev->getVisibility() && !$wgUser->isAllowed( 'deleterevision' ) ) {
$del = Xml::check( 'deleterevisions', false, array('class' => 'mw-revdelundel-hidden') );
. $navLinks . "\n"
. Xml::openElement( 'table', array( 'class' => 'wikitable filehistory' ) ) . "\n"
. '<tr><td></td>'
- . ( $this->current->isLocal() && ($wgUser->isAllowed('delete') || $wgUser->isAllowed('deletedrevision') ) ? '<td></td>' : '' )
+ . ( $this->current->isLocal() && ($wgUser->isAllowed('delete') || $wgUser->isAllowed('deletedhistory') ) ? '<td></td>' : '' )
. '<th>' . wfMsgHtml( 'filehist-datetime' ) . '</th>'
. ( $this->showThumb ? '<th>' . wfMsgHtml( 'filehist-thumb' ) . '</th>' : '' )
. '<th>' . wfMsgHtml( 'filehist-dimensions' ) . '</th>'
$row = $css = $selected = '';
// Deletion link
- if( $local && ($wgUser->isAllowed('delete') || $wgUser->isAllowed('deletedrevision') ) ) {
+ if( $local && ($wgUser->isAllowed('delete') || $wgUser->isAllowed('deletedhistory') ) ) {
$row .= '<td>';
# Link to remove from history
if( $wgUser->isAllowed( 'delete' ) ) {
);
}
# Link to hide content. Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($wgUser->isAllowed('deletedrevision') && $file->getVisibility()) ) {
+ if( $wgUser->isAllowed('deleterevision') || ($wgUser->isAllowed('deletedhistory') && $file->getVisibility()) ) {
if( $wgUser->isAllowed('delete') ) {
$row .= '<br/>';
}
$paramArray = LogPage::extractParams( $row->log_params );
$revert = $del = '';
// Some user can hide log items and have review links
- if( !($this->flags & self::NO_ACTION_LINK) && $wgUser->isAllowed( 'deletedrevision' ) ) {
+ if( !($this->flags & self::NO_ACTION_LINK) && $wgUser->isAllowed( 'deletedhistory' ) ) {
// Don't show useless link to people who cannot hide revisions
if( $row->log_deleted || $wgUser->isAllowed( 'deleterevision' ) ) {
$del = $this->getShowHideLinks( $row ) . ' ';
array( 'known', 'noclasses' )
) . ')';
// If an edit was hidden from a page give a review link to the history
- } else if( self::typeAction($row,array('delete','suppress'),'revision','deletedrevision') ) {
+ } else if( self::typeAction($row,array('delete','suppress'),'revision','deletedhistory') ) {
if( count($paramArray) >= 2 ) {
// Different revision types use different URL params...
$key = $paramArray[0];
$revert = wfMsg( 'parentheses', $wgLang->pipeList( $revert ) );
}
// Hidden log items, give review link
- } else if( self::typeAction($row,array('delete','suppress'),'event','deletedrevision') ) {
+ } else if( self::typeAction($row,array('delete','suppress'),'event','deletedhistory') ) {
if( count($paramArray) >= 1 ) {
$revdel = SpecialPage::getTitleFor( 'Revisiondelete' );
// $paramArray[1] is a CSV of the IDs
* @return Boolean
*/
public static function userCan( $row, $field ) {
- if( ( $row->log_deleted & $field ) == $field ) {
+ if( $row->log_deleted & $field ) {
global $wgUser;
- $permission = ( $row->log_deleted & LogPage::DELETED_RESTRICTED ) == LogPage::DELETED_RESTRICTED
+ $permission = ( $row->log_deleted & LogPage::DELETED_RESTRICTED )
? 'suppressrevision'
- : 'deletedrevision';
+ : 'deletedhistory';
wfDebug( "Checking for $permission due to $field match on $row->log_deleted\n" );
return $wgUser->isAllowed( $permission );
} else {
global $wgUser;
$this->mConds['log_user'] = $userid;
// Paranoia: avoid brute force searches (bug 17342)
- if( !$wgUser->isAllowed( 'deletedrevision' ) ) {
+ if( !$wgUser->isAllowed( 'deletedhistory' ) ) {
$this->mConds[] = $this->mDb->bitAnd('log_deleted', LogPage::DELETED_USER) . ' = 0';
} else if( !$wgUser->isAllowed( 'suppressrevision' ) ) {
$this->mConds[] = $this->mDb->bitAnd('log_deleted', LogPage::SUPPRESSED_USER) .
$this->mConds['log_title'] = $title->getDBkey();
}
// Paranoia: avoid brute force searches (bug 17342)
- if( !$wgUser->isAllowed( 'deletedrevision' ) ) {
+ if( !$wgUser->isAllowed( 'deletedhistory' ) ) {
$this->mConds[] = $this->mDb->bitAnd('log_deleted', LogPage::DELETED_ACTION) . ' = 0';
} else if( !$wgUser->isAllowed( 'suppressrevision' ) ) {
$this->mConds[] = $this->mDb->bitAnd('log_deleted', LogPage::SUPPRESSED_ACTION) .
* @return bool
*/
public function userCan( $field ) {
- if( ( $this->mDeleted & $field ) == $field ) {
+ if( $this->mDeleted & $field ) {
global $wgUser;
- $permission = ( $this->mDeleted & self::DELETED_RESTRICTED ) == self::DELETED_RESTRICTED
+ $permission = ( $this->mDeleted & self::DELETED_RESTRICTED )
? 'suppressrevision'
- : 'deletedrevision';
+ : ( $field & self::DELETED_TEXT ) ? 'deletedtext' : 'deletedhistory';
wfDebug( "Checking for $permission due to $field match on $this->mDeleted\n" );
return $wgUser->isAllowed( $permission );
} else {
}
} else {
//article doesn't exist or is deleted
- if( $wgUser->isAllowed( 'deletedhistory' ) && $wgUser->isAllowed( 'deletedcontent' ) ) {
+ if( $wgUser->isAllowed( 'deletedhistory' ) && $wgUser->isAllowed( 'deletedtext' ) ) {
if( $n = $this->mTitle->isDeleted() ) {
$undelTitle = SpecialPage::getTitleFor( 'Undelete' );
$content_actions['undelete'] = array(
'createtalk',
'delete',
'deletedhistory',
- 'deletedcontent',
- 'deletedrevision',
+ 'deletedtext',
'deleterevision',
'edit',
'editinterface',
}\r
\r
$rdel = ''; $ldel = '';\r
- if( $wgUser->isAllowed( 'deletedrevision' ) ) {\r
+ if( $wgUser->isAllowed( 'deletedhistory' ) ) {\r
// Don't show useless link to people who cannot hide revisions\r
if( $this->mOldRev->getVisibility() || $wgUser->isAllowed( 'deleterevision' ) ) {\r
if( !$this->mOldRev->userCan( Revision::DELETED_RESTRICTED ) ) {\r
*/
public function userCan( $field ) {
$this->load();
- if( ($this->deleted & $field) == $field ) {
+ if( $this->deleted & $field ) {
global $wgUser;
- $permission = ( $this->deleted & File::DELETED_RESTRICTED ) == File::DELETED_RESTRICTED
+ $permission = ( $this->deleted & File::DELETED_RESTRICTED )
? 'suppressrevision'
- : 'deletedrevision';
+ : ( $field & File::DELETED_FILE ) ? 'deletedtext' : 'deletedhistory';
wfDebug( "Checking for $permission due to $field match on $this->deleted\n" );
return $wgUser->isAllowed( $permission );
} else {
* @return bool
*/
function userCan( $field ) {
- if( isset($this->deleted) && ($this->deleted & $field) == $field ) {
+ if( isset($this->deleted) && ($this->deleted & $field) ) {
global $wgUser;
- $permission = ( $this->deleted & File::DELETED_RESTRICTED ) == File::DELETED_RESTRICTED
+ $permission = ( $this->deleted & File::DELETED_RESTRICTED )
? 'suppressrevision'
- : 'deletedrevision';
+ : ( $field & File::DELETED_FILE ) ? 'deletedtext' : 'deletedhistory';
wfDebug( "Checking for $permission due to $field match on $this->mDeleted\n" );
return $wgUser->isAllowed( $permission );
} else {
$conds = array_merge( $userCond, $this->getNamespaceCond() );
// Paranoia: avoid brute force searches (bug 17342)
- if( !$wgUser->isAllowed( 'deletedrevision' ) ) {
+ if( !$wgUser->isAllowed( 'deletedhistory' ) ) {
$conds[] = $this->mDb->bitAnd('rev_deleted',Revision::DELETED_USER) . ' = 0';
} else if( !$wgUser->isAllowed( 'suppressrevision' ) ) {
$conds[] = $this->mDb->bitAnd('rev_deleted',Revision::SUPPRESSED_USER) .
}
// Don't show useless link to people who cannot hide revisions
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedrevision')) ) {
+ if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
// If revision was hidden from sysops
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
$del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
list( $index, $userCond ) = $this->getUserCond();
$conds = array_merge( $userCond, $this->getNamespaceCond() );
// Paranoia: avoid brute force searches (bug 17792)
- if( !$wgUser->isAllowed( 'deletedrevision' ) ) {
+ if( !$wgUser->isAllowed( 'deletedhistory' ) ) {
$conds[] = $this->mDb->bitAnd('ar_deleted',Revision::DELETED_USER) . ' = 0';
} else if( !$wgUser->isAllowed( 'suppressrevision' ) ) {
$conds[] = $this->mDb->bitAnd('ar_deleted',Revision::SUPPRESSED_USER) .
$this->messages['undeleteviewlink']
);
- if( $wgUser->isAllowed('deletedcontent') ) {
+ if( $wgUser->isAllowed('deletedtext') ) {
$last = $sk->linkKnown(
$undelete,
$this->messages['diff'],
}
// Don't show useless link to people who cannot hide revisions
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedrevision')) ) {
+ if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
// If revision was hidden from sysops
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
$del = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
);
public function __construct() {
- parent::__construct( 'Revisiondelete', 'deletedrevision' );
+ parent::__construct( 'Revisiondelete', 'deletedhistory' );
}
public function execute( $par ) {
global $wgOut, $wgUser, $wgRequest;
- if( !$wgUser->isAllowed( 'deletedrevision' ) ) {
- $wgOut->permissionRequired( 'deletedrevision' );
+ if( !$wgUser->isAllowed( 'deletedhistory' ) ) {
+ $wgOut->permissionRequired( 'deletedhistory' );
return;
} else if( wfReadOnly() ) {
$wgOut->readOnlyPage();
return;
}
if( !$oimage->userCan(File::DELETED_FILE) ) {
- $wgOut->permissionRequired( 'suppressrevision' );
+ if( $oimage->isDeleted( File::DELETED_RESTRICTED ) ) {
+ $wgOut->permissionRequired( 'suppressrevision' );
+ } else {
+ $wgOut->permissionRequired( 'deletedtext' );
+ }
return;
}
if ( !$wgUser->matchEditToken( $this->token, $archiveName ) ) {
if( $par != "" ) {
$this->mTarget = $par;
}
- if ( $wgUser->isAllowed( 'deletedcontent' ) && $wgUser->isAllowed( 'undelete' ) && !$wgUser->isBlocked() ) {
+ if ( $wgUser->isAllowed( 'deletedtext' ) && $wgUser->isAllowed( 'undelete' ) && !$wgUser->isBlocked() ) {
$this->mAllowed = true; // user can restore
$this->mCanView = true; // user can view content
- } elseif ( $wgUser->isAllowed( 'deletedcontent' ) ) {
+ } elseif ( $wgUser->isAllowed( 'deletedtext' ) ) {
$this->mAllowed = false; // user cannot restore
$this->mCanView = true; // user can view content
} else { // user can only view the list of revisions
}
if( $this->mFile !== null ) {
$file = new ArchivedFile( $this->mTargetObj, '', $this->mFile );
+ $file->load();
// Check if user is allowed to see this file
- if( !$file->userCan( File::DELETED_FILE ) ) {
- $wgOut->permissionRequired( 'suppressrevision' );
+ if ( !$file->exists() ) {
+ $wgOut->addWikiMsg( 'filedelete-nofile', $this->mFile );
+ return;
+ } else if( !$file->userCan( File::DELETED_FILE ) ) {
+ if( $file->isDeleted( File::DELETED_RESTRICTED ) ) {
+ $wgOut->permissionRequired( 'suppressrevision' );
+ } else {
+ $wgOut->permissionRequired( 'deletedtext' );
+ }
return false;
} elseif ( !$wgUser->matchEditToken( $this->mToken, $this->mFile ) ) {
$this->showFileConfirmationForm( $this->mFile );
$revdlink = '';
// Diffs already have revision delete links
- if( !$this->mDiff && $wgUser->isAllowed( 'deletedrevision' ) ) {
+ if( !$this->mDiff && $wgUser->isAllowed( 'deletedhistory' ) ) {
// Don't show useless link to people who cannot hide revisions
if( !$rev->getVisibility() && !$wgUser->isAllowed( 'deleterevision' ) ) {
$revdlink = '';
$targetQuery = array( 'oldid' => $rev->getId() );
}
// Add show/hide link if available. Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedrevision')) ) {
+ if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
// If revision was hidden from sysops
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
$del = ' ' . Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
// Edit summary
$comment = $sk->revComment( $rev );
// Show/hide link. // Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedrevision')) ) {
+ if( $wgUser->isAllowed('deleterevision') || ($rev->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
if( !$rev->userCan( Revision::DELETED_RESTRICTED ) ) {
// If revision was hidden from sysops
$revdlink = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ),
$comment = $this->getFileComment( $file, $sk );
$revdlink = '';
// Add show/hide link if available. Don't show useless link to people who cannot hide revisions.
- if( $wgUser->isAllowed('deleterevision') || ($file->getVisibility() && $wgUser->isAllowed('deletedrevision')) ) {
+ if( $wgUser->isAllowed('deleterevision') || ($file->getVisibility() && $wgUser->isAllowed('deletedhistory')) ) {
if( !$file->userCan(File::DELETED_RESTRICTED ) ) {
// If revision was hidden from sysops
$revdlink = Xml::tags( 'span', array( 'class'=>'mw-revdelundel-link' ), '('.wfMsgHtml('rev-delundel').')' );