getDB(); if ( $showBlockInfo ) { $queryInfo = DatabaseBlock::getQueryInfo(); } else { $queryInfo = [ 'tables' => [ 'ipblocks' ], 'fields' => [ 'ipb_deleted' ], 'joins' => [], ]; } $this->addTables( [ 'blk' => $queryInfo['tables'] ] ); $this->addFields( $queryInfo['fields'] ); $this->addJoinConds( $queryInfo['joins'] ); $this->addJoinConds( [ 'blk' => [ 'LEFT JOIN', [ 'ipb_user=user_id', 'ipb_expiry > ' . $db->addQuotes( $db->timestamp() ), ] ], ] ); // Don't show hidden names if ( !$this->getPermissionManager()->userHasRight( $this->getUser(), 'hideuser' ) ) { $this->addWhere( 'ipb_deleted = 0 OR ipb_deleted IS NULL' ); } } /** * @name Methods required from ApiQueryBase * @{ */ /** * @see ApiBase::getDB * @return IDatabase */ abstract protected function getDB(); /** * @see ApiBase::getPermissionManager * @return PermissionManager */ abstract protected function getPermissionManager(): PermissionManager; /** * @see IContextSource::getUser * @return User */ abstract public function getUser(); /** * @see ApiQueryBase::addTables * @param string|array $tables * @param string|null $alias */ abstract protected function addTables( $tables, $alias = null ); /** * @see ApiQueryBase::addFields * @param array|string $fields */ abstract protected function addFields( $fields ); /** * @see ApiQueryBase::addWhere * @param string|array $conds */ abstract protected function addWhere( $conds ); /** * @see ApiQueryBase::addJoinConds * @param array $conds */ abstract protected function addJoinConds( $conds ); /** @} */ }