1
0
Fork 0
mirror of https://codeberg.org/demostf/api.git synced 2026-06-03 18:04:08 +02:00

fix listing by unknown users

This commit is contained in:
Robin Appelman 2022-05-07 14:55:40 +02:00
commit bfaaaa17d7

View file

@ -40,12 +40,14 @@ class DemoListProvider extends BaseProvider {
* @return Demo[] * @return Demo[]
*/ */
public function listProfile(int $page, array $where = [], string $order = 'DESC'): array { public function listProfile(int $page, array $where = [], string $order = 'DESC'): array {
$players = $where['players'];
unset($where['players']);
$query = $this->getQueryBuilder(); $query = $this->getQueryBuilder();
$query->select('id') $query->select('id')
->from('users') ->from('users')
->where($query->expr()->in('steamid', ->where($query->expr()->in('steamid',
$query->createNamedParameter($where['players'], Connection::PARAM_STR_ARRAY))); $query->createNamedParameter($players, Connection::PARAM_STR_ARRAY)));
unset($where['players']);
$result = $query->execute(); $result = $query->execute();
$userIds = $result->fetchAll(PDO::FETCH_COLUMN); $userIds = $result->fetchAll(PDO::FETCH_COLUMN);
$result->free(); $result->free();
@ -54,7 +56,10 @@ class DemoListProvider extends BaseProvider {
$query->select('p.demo_id') $query->select('p.demo_id')
->from('players', 'p'); ->from('players', 'p');
if (\count($userIds) > 1) { if (\count($userIds) != count($players)) {
// one of more user ids don't have any demos
return [];
} else if (\count($userIds) > 1) {
$query->where($query->expr()->in('user_id', $query->where($query->expr()->in('user_id',
$query->createNamedParameter($userIds, Connection::PARAM_INT_ARRAY))) $query->createNamedParameter($userIds, Connection::PARAM_INT_ARRAY)))
->groupBy('demo_id') ->groupBy('demo_id')