X-Git-Url: https://git.cyclocoop.org/%28%28?a=blobdiff_plain;f=includes%2FLinker.php;h=a79ec3a8f12b08eb8301135b0eadc77c05f3d6b8;hb=bb94f4964d1da0ed6a5fc3ae9f0e1b629a8cfd96;hp=f20795d769679683954d322223c2e023979d698c;hpb=4677b12af9bcef1561135cce562a6b35fb42af1c;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Linker.php b/includes/Linker.php index f20795d769..a79ec3a8f1 100644 --- a/includes/Linker.php +++ b/includes/Linker.php @@ -21,6 +21,7 @@ */ use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; +use MediaWiki\Storage\RevisionRecord; /** * Some internal bits split of from Skin.php. These functions are used @@ -977,7 +978,9 @@ class Linker { $items[] = self::link( $contribsPage, wfMessage( 'contribslink' )->escaped(), $attribs ); } - if ( $blockable && $wgUser->isAllowed( 'block' ) ) { + $userCanBlock = MediaWikiServices::getInstance()->getPermissionManager() + ->userHasRight( $wgUser, 'block' ); + if ( $blockable && $userCanBlock ) { $items[] = self::blockLink( $userId, $userText ); } @@ -1093,15 +1096,15 @@ class Linker { * @return string HTML fragment */ public static function revUserLink( $rev, $isPublic = false ) { - if ( $rev->isDeleted( Revision::DELETED_USER ) && $isPublic ) { + if ( $rev->isDeleted( RevisionRecord::DELETED_USER ) && $isPublic ) { $link = wfMessage( 'rev-deleted-user' )->escaped(); - } elseif ( $rev->userCan( Revision::DELETED_USER ) ) { - $link = self::userLink( $rev->getUser( Revision::FOR_THIS_USER ), - $rev->getUserText( Revision::FOR_THIS_USER ) ); + } elseif ( $rev->userCan( RevisionRecord::DELETED_USER ) ) { + $link = self::userLink( $rev->getUser( RevisionRecord::FOR_THIS_USER ), + $rev->getUserText( RevisionRecord::FOR_THIS_USER ) ); } else { $link = wfMessage( 'rev-deleted-user' )->escaped(); } - if ( $rev->isDeleted( Revision::DELETED_USER ) ) { + if ( $rev->isDeleted( RevisionRecord::DELETED_USER ) ) { return '' . $link . ''; } return $link; @@ -1116,11 +1119,11 @@ class Linker { * @return string HTML */ public static function revUserTools( $rev, $isPublic = false, $useParentheses = true ) { - if ( $rev->userCan( Revision::DELETED_USER ) && - ( !$rev->isDeleted( Revision::DELETED_USER ) || !$isPublic ) + if ( $rev->userCan( RevisionRecord::DELETED_USER ) && + ( !$rev->isDeleted( RevisionRecord::DELETED_USER ) || !$isPublic ) ) { - $userId = $rev->getUser( Revision::FOR_THIS_USER ); - $userText = $rev->getUserText( Revision::FOR_THIS_USER ); + $userId = $rev->getUser( RevisionRecord::FOR_THIS_USER ); + $userText = $rev->getUserText( RevisionRecord::FOR_THIS_USER ); if ( $userId || (string)$userText !== '' ) { $link = self::userLink( $userId, $userText ) . self::userToolLinks( $userId, $userText, false, 0, null, @@ -1132,7 +1135,7 @@ class Linker { $link = wfMessage( 'rev-deleted-user' )->escaped(); } - if ( $rev->isDeleted( Revision::DELETED_USER ) ) { + if ( $rev->isDeleted( RevisionRecord::DELETED_USER ) ) { return ' ' . $link . ''; } return $link; @@ -1319,7 +1322,7 @@ class Linker { $services->getNamespaceInfo()->getCanonicalName( NS_MEDIA ), '/' ); $medians .= '|'; $medians .= preg_quote( - MediaWikiServices::getInstance()->getContentLanguage()->getNsText( NS_MEDIA ), + $services->getContentLanguage()->getNsText( NS_MEDIA ), '/' ) . '):'; @@ -1356,7 +1359,7 @@ class Linker { } if ( $match[1] !== false && $match[1] !== '' ) { if ( preg_match( - MediaWikiServices::getInstance()->getContentLanguage()->linkTrail(), + $services->getContentLanguage()->linkTrail(), $match[3], $submatch ) ) { @@ -1372,7 +1375,7 @@ class Linker { Title::newFromText( $linkTarget ); try { - $target = MediaWikiServices::getInstance()->getTitleParser()-> + $target = $services->getTitleParser()-> parseTitle( $linkTarget ); if ( $target->getText() == '' && !$target->isExternal() @@ -1571,18 +1574,18 @@ class Linker { public static function revComment( Revision $rev, $local = false, $isPublic = false, $useParentheses = true ) { - if ( $rev->getComment( Revision::RAW ) == "" ) { + if ( $rev->getComment( RevisionRecord::RAW ) == "" ) { return ""; } - if ( $rev->isDeleted( Revision::DELETED_COMMENT ) && $isPublic ) { + if ( $rev->isDeleted( RevisionRecord::DELETED_COMMENT ) && $isPublic ) { $block = " " . wfMessage( 'rev-deleted-comment' )->escaped() . ""; - } elseif ( $rev->userCan( Revision::DELETED_COMMENT ) ) { - $block = self::commentBlock( $rev->getComment( Revision::FOR_THIS_USER ), + } elseif ( $rev->userCan( RevisionRecord::DELETED_COMMENT ) ) { + $block = self::commentBlock( $rev->getComment( RevisionRecord::FOR_THIS_USER ), $rev->getTitle(), $local, null, $useParentheses ); } else { $block = " " . wfMessage( 'rev-deleted-comment' )->escaped() . ""; } - if ( $rev->isDeleted( Revision::DELETED_COMMENT ) ) { + if ( $rev->isDeleted( RevisionRecord::DELETED_COMMENT ) ) { return " $block"; } return $block; @@ -1875,10 +1878,10 @@ class Linker { $editCount = 0; $moreRevs = false; foreach ( $res as $row ) { - if ( $rev->getUserText( Revision::RAW ) != $row->rev_user_text ) { + if ( $rev->getUserText( RevisionRecord::RAW ) != $row->rev_user_text ) { if ( $verify && - ( $row->rev_deleted & Revision::DELETED_TEXT - || $row->rev_deleted & Revision::DELETED_USER + ( $row->rev_deleted & RevisionRecord::DELETED_TEXT + || $row->rev_deleted & RevisionRecord::DELETED_USER ) ) { // If the user or the text of the revision we might rollback // to is deleted in some way we can't rollback. Similar to @@ -2102,12 +2105,14 @@ class Linker { * @return string HTML fragment */ public static function getRevDeleteLink( User $user, Revision $rev, LinkTarget $title ) { - $canHide = $user->isAllowed( 'deleterevision' ); - if ( !$canHide && !( $rev->getVisibility() && $user->isAllowed( 'deletedhistory' ) ) ) { + $permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); + $canHide = $permissionManager->userHasRight( $user, 'deleterevision' ); + $canHideHistory = $permissionManager->userHasRight( $user, 'deletedhistory' ); + if ( !$canHide && !( $rev->getVisibility() && $canHideHistory ) ) { return ''; } - if ( !$rev->userCan( Revision::DELETED_RESTRICTED, $user ) ) { + if ( !$rev->userCan( RevisionRecord::DELETED_RESTRICTED, $user ) ) { return self::revDeleteLinkDisabled( $canHide ); // revision was hidden from sysops } $prefixedDbKey = MediaWikiServices::getInstance()->getTitleFormatter()-> @@ -2130,7 +2135,7 @@ class Linker { ]; } return self::revDeleteLink( $query, - $rev->isDeleted( Revision::DELETED_RESTRICTED ), $canHide ); + $rev->isDeleted( RevisionRecord::DELETED_RESTRICTED ), $canHide ); } /**