$result = (int)$s->user_id;
}
- self::$idCacheByName[$name] = $result;
-
- if ( count( self::$idCacheByName ) > 1000 ) {
+ if ( count( self::$idCacheByName ) >= 1000 ) {
self::$idCacheByName = [];
}
+ self::$idCacheByName[$name] = $result;
+
return $result;
}
* @return bool True if the user is logged in, false otherwise.
*/
private function loadFromSession() {
- // Deprecated hook
- $result = null;
- Hooks::run( 'UserLoadFromSession', [ $this, &$result ], '1.27' );
- if ( $result !== null ) {
- return $result;
- }
-
// MediaWiki\Session\Session already did the necessary authentication of the user
// returned here, so just use it if applicable.
$session = $this->getRequest()->getSession();
$user = $session->getUser();
if ( $user->isLoggedIn() ) {
$this->loadFromUserObject( $user );
- if ( $user->getBlock() ) {
- // If this user is autoblocked, set a cookie to track the block. This has to be done on
- // every session load, because an autoblocked editor might not edit again from the same
- // IP address after being blocked.
- $this->trackBlockWithCookie();
- }
+
+ // If this user is autoblocked, set a cookie to track the block. This has to be done on
+ // every session load, because an autoblocked editor might not edit again from the same
+ // IP address after being blocked.
+ MediaWikiServices::getInstance()->getBlockManager()->trackBlockWithCookie( $this );
// Other code expects these to be set in the session, so set them.
$session->set( 'wsUserID', $this->getId() );
/**
* Set the 'BlockID' cookie depending on block type and user authentication status.
+ *
+ * @deprecated since 1.34 Use BlockManager::trackBlockWithCookie instead
*/
public function trackBlockWithCookie() {
- $block = $this->getBlock();
-
- if ( $block && $this->getRequest()->getCookie( 'BlockID' ) === null
- && $block->shouldTrackWithCookie( $this->isAnon() )
- ) {
- $block->setCookie( $this->getRequest()->response() );
- }
+ MediaWikiServices::getInstance()->getBlockManager()->trackBlockWithCookie( $this );
}
/**
$fromReplica
);
- if ( $block instanceof AbstractBlock ) {
- wfDebug( __METHOD__ . ": Found block.\n" );
+ if ( $block ) {
$this->mBlock = $block;
$this->mBlockedby = $block->getByName();
$this->mBlockreason = $block->getReason();
$dbw->insert( 'user_newtalk',
[ $field => $id, 'user_last_timestamp' => $dbw->timestampOrNull( $ts ) ],
__METHOD__,
- 'IGNORE' );
+ [ 'IGNORE' ] );
if ( $dbw->affectedRows() ) {
wfDebug( __METHOD__ . ": set on ($field, $id)\n" );
return true;
* and 'all', which forces a reset of *all* preferences and overrides everything else.
*
* @param array|string $resetKinds Which kinds of preferences to reset. Defaults to
- * array( 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' )
+ * [ 'registered', 'registered-multiselect', 'registered-checkmatrix', 'unused' ]
* for backwards-compatibility.
* @param IContextSource|null $context Context source used when $resetKinds
* does not contain 'all', passed to getOptionKinds().
* Returns an array of the groups that a particular group can add/remove.
*
* @param string $group The group to check for whether it can add/remove
- * @return array Array( 'add' => array( addablegroups ),
- * 'remove' => array( removablegroups ),
- * 'add-self' => array( addablegroups to self),
- * 'remove-self' => array( removable groups from self) )
+ * @return array [ 'add' => [ addablegroups ],
+ * 'remove' => [ removablegroups ],
+ * 'add-self' => [ addablegroups to self ],
+ * 'remove-self' => [ removable groups from self ] ]
*/
public static function changeableByGroup( $group ) {
global $wgAddGroups, $wgRemoveGroups, $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf;
/**
* Returns an array of groups that this user can add and remove
- * @return array Array( 'add' => array( addablegroups ),
- * 'remove' => array( removablegroups ),
- * 'add-self' => array( addablegroups to self),
- * 'remove-self' => array( removable groups from self) )
+ * @return array [ 'add' => [ addablegroups ],
+ * 'remove' => [ removablegroups ],
+ * 'add-self' => [ addablegroups to self ],
+ * 'remove-self' => [ removable groups from self ] ]
*/
public function changeableGroups() {
if ( $this->isAllowed( 'userrights' ) ) {