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 */ abstract protected function getDB(); /** @see ApiBase::getPermissionManager */ abstract protected function getPermissionManager(): PermissionManager; /** @see IContextSource::getUser */ abstract public function getUser(); /** @see ApiQueryBase::addTables */ abstract protected function addTables( $tables, $alias = null ); /** @see ApiQueryBase::addFields */ abstract protected function addFields( $fields ); /** @see ApiQueryBase::addWhere */ abstract protected function addWhere( $conds ); /** @see ApiQueryBase::addJoinConds */ abstract protected function addJoinConds( $conds ); /**@}*/ }