X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FRevision.php;h=e0789d55d6fb6add40a2a4a169992b3c17e38bcf;hb=9dee1f2157b2b61311e988af4d504a94d0ea093d;hp=de69827416163f2d583f536fe546f864fb321b29;hpb=aaeb2033c92a4dc9a675488ee4036da78307d5ac;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Revision.php b/includes/Revision.php index de69827416..e0789d55d6 100644 --- a/includes/Revision.php +++ b/includes/Revision.php @@ -1658,19 +1658,19 @@ class Revision implements IDBAccessObject { */ public static function userCanBitfield( $bitfield, $field, User $user = null ) { if ( $bitfield & $field ) { // aspect is deleted - if ( $bitfield & self::DELETED_RESTRICTED ) { - $permission = 'suppressrevision'; - } elseif ( $field & self::DELETED_TEXT ) { - $permission = 'deletedtext'; - } else { - $permission = 'deletedhistory'; - } - wfDebug( "Checking for $permission due to $field match on $bitfield\n" ); if ( $user === null ) { global $wgUser; $user = $wgUser; } - return $user->isAllowed( $permission ); + if ( $bitfield & self::DELETED_RESTRICTED ) { + $permissions = array( 'suppressrevision', 'viewsuppressed' ); + } elseif ( $field & self::DELETED_TEXT ) { + $permissions = array( 'deletedtext' ); + } else { + $permissions = array( 'deletedhistory' ); + } + wfDebug( "Checking for " . implode( ', ', $permissions ) . " due to $field match on $bitfield\n" ); + return call_user_func_array( array( $user, 'isAllowedAny' ), $permissions ); } else { return true; }