Merge "output: Narrow Title type hint to LinkTarget"
[lhc/web/wiklou.git] / includes / specials / SpecialRecentChanges.php
index d0846b3..4683fe6 100644 (file)
@@ -159,7 +159,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                }
 
                $this->addHelpLink(
-                       '//meta.wikimedia.org/wiki/Special:MyLanguage/Help:Recent_changes',
+                       'https://meta.wikimedia.org/wiki/Special:MyLanguage/Help:Recent_changes',
                        true
                );
                parent::execute( $subpage );
@@ -185,7 +185,9 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                if (
                        !$this->including() &&
                        $this->getUser()->isLoggedIn() &&
-                       $this->getUser()->isAllowed( 'viewmywatchlist' )
+                       MediaWikiServices::getInstance()
+                               ->getPermissionManager()
+                               ->userHasRight( $this->getUser(), 'viewmywatchlist' )
                ) {
                        $this->registerFiltersFromDefinitions( [ $this->watchlistFilterGroupDefinition ] );
                        $watchlistGroup = $this->getFilterGroup( 'watchlist' );
@@ -197,26 +199,36 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                $user = $this->getUser();
 
                $significance = $this->getFilterGroup( 'significance' );
+               /** @var ChangesListBooleanFilter $hideMinor */
                $hideMinor = $significance->getFilter( 'hideminor' );
+               '@phan-var ChangesListBooleanFilter $hideMinor';
                $hideMinor->setDefault( $user->getBoolOption( 'hideminor' ) );
 
                $automated = $this->getFilterGroup( 'automated' );
+               /** @var ChangesListBooleanFilter $hideBots */
                $hideBots = $automated->getFilter( 'hidebots' );
+               '@phan-var ChangesListBooleanFilter $hideBots';
                $hideBots->setDefault( true );
 
+               /** @var ChangesListStringOptionsFilterGroup|null $reviewStatus */
                $reviewStatus = $this->getFilterGroup( 'reviewStatus' );
+               '@phan-var ChangesListStringOptionsFilterGroup|null $reviewStatus';
                if ( $reviewStatus !== null ) {
                        // Conditional on feature being available and rights
                        if ( $user->getBoolOption( 'hidepatrolled' ) ) {
                                $reviewStatus->setDefault( 'unpatrolled' );
                                $legacyReviewStatus = $this->getFilterGroup( 'legacyReviewStatus' );
+                               /** @var ChangesListBooleanFilter $legacyHidePatrolled */
                                $legacyHidePatrolled = $legacyReviewStatus->getFilter( 'hidepatrolled' );
+                               '@phan-var ChangesListBooleanFilter $legacyHidePatrolled';
                                $legacyHidePatrolled->setDefault( true );
                        }
                }
 
                $changeType = $this->getFilterGroup( 'changeType' );
+               /** @var ChangesListBooleanFilter $hideCategorization */
                $hideCategorization = $changeType->getFilter( 'hidecategorization' );
+               '@phan-var ChangesListBooleanFilter $hideCategorization';
                if ( $hideCategorization !== null ) {
                        // Conditional on feature being available
                        $hideCategorization->setDefault( $user->getBoolOption( 'hidecategorization' ) );
@@ -269,7 +281,10 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                $join_conds = array_merge( $join_conds, $rcQuery['joins'] );
 
                // JOIN on watchlist for users
-               if ( $user->isLoggedIn() && $user->isAllowed( 'viewmywatchlist' ) ) {
+               if ( $user->isLoggedIn() && MediaWikiServices::getInstance()
+                               ->getPermissionManager()
+                               ->userHasRight( $user, 'viewmywatchlist' )
+               ) {
                        $tables[] = 'watchlist';
                        $fields[] = 'wl_user';
                        $fields[] = 'wl_notificationtimestamp';
@@ -847,7 +862,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                sort( $linkLimits );
                $linkLimits = array_unique( $linkLimits );
 
-               $linkDays = $config->get( 'RCLinkDays' );
+               $linkDays = $this->getLinkDays();
                $linkDays[] = $options['days'];
                sort( $linkDays );
                $linkDays = array_unique( $linkDays );
@@ -918,7 +933,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                        [ 'class' => 'rclistfrom' ],
                        $this->makeOptionsLink(
                                $this->msg( 'rclistfrom' )->plaintextParams( $now, $timenow, $datenow )->parse(),
-                               [ 'from' => $timestamp ],
+                               [ 'from' => $timestamp, 'fromFormatted' => $now ],
                                $nondefaults
                        )
                );