userNameUtils->getCanonical( $username, UserRigorOptions::RIGOR_USABLE ); if ( $username === false ) { return false; } $db = DBAccessObjectUtils::getDBFromRecency( $this->dbProvider, $flags ); return (bool)$db->newSelectQueryBuilder() ->select( [ 'user_id' ] ) ->from( 'user' ) ->where( [ 'user_name' => $username ] ) ->recency( $flags ) ->caller( __METHOD__ )->fetchField(); } protected function getTemporaryPassword( string $username, $flags = IDBAccessObject::READ_NORMAL ): array { $db = DBAccessObjectUtils::getDBFromRecency( $this->dbProvider, $flags ); $row = $db->newSelectQueryBuilder() ->select( [ 'user_newpassword', 'user_newpass_time' ] ) ->from( 'user' ) ->where( [ 'user_name' => $username ] ) ->recency( $flags ) ->caller( __METHOD__ )->fetchRow(); if ( !$row ) { return [ null, null ]; } return [ $this->getPassword( $row->user_newpassword ), $row->user_newpass_time, ]; } protected function setTemporaryPassword( string $username, Password $tempPassHash, $tempPassTime ): void { $db = $this->dbProvider->getPrimaryDatabase(); $db->newUpdateQueryBuilder() ->update( 'user' ) ->set( [ 'user_newpassword' => $tempPassHash->toString(), 'user_newpass_time' => $db->timestampOrNull( $tempPassTime ), ] ) ->where( [ 'user_name' => $username ] ) ->caller( __METHOD__ )->execute(); } }