Skip to content

Commit ee88420

Browse files
[5.x] Harden OrderBys (#14474)
Co-authored-by: Jason Varga <jason@pixelfear.com>
1 parent f3893f6 commit ee88420

File tree

5 files changed

+20
-8
lines changed

5 files changed

+20
-8
lines changed

src/GraphQL/Queries/AssetsQuery.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Statamic\GraphQL\Queries\Concerns\FiltersQuery;
1414
use Statamic\GraphQL\Types\AssetInterface;
1515
use Statamic\GraphQL\Types\JsonArgument;
16+
use Statamic\Query\OrderBy;
1617
use Statamic\Support\Str;
1718

1819
class AssetsQuery extends Query
@@ -69,7 +70,9 @@ private function sortQuery($query, $sorts)
6970
[$sort, $order] = explode(' ', $sort);
7071
}
7172

72-
$query->orderBy($sort, $order);
73+
if ($sort = OrderBy::column($sort)) {
74+
$query->orderBy($sort, $order);
75+
}
7376
}
7477
}
7578

src/GraphQL/Queries/EntriesQuery.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Statamic\GraphQL\Queries\Concerns\ScopesQuery;
1717
use Statamic\GraphQL\Types\EntryInterface;
1818
use Statamic\GraphQL\Types\JsonArgument;
19+
use Statamic\Query\OrderBy;
1920
use Statamic\Support\Str;
2021

2122
class EntriesQuery extends Query
@@ -96,7 +97,9 @@ private function sortQuery($query, $sorts)
9697
[$sort, $order] = explode(' ', $sort);
9798
}
9899

99-
$query->orderBy($sort, $order);
100+
if ($sort = OrderBy::column($sort)) {
101+
$query->orderBy($sort, $order);
102+
}
100103
}
101104
}
102105

src/GraphQL/Queries/TermsQuery.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Statamic\GraphQL\Queries\Concerns\FiltersQuery;
1414
use Statamic\GraphQL\Types\JsonArgument;
1515
use Statamic\GraphQL\Types\TermInterface;
16+
use Statamic\Query\OrderBy;
1617
use Statamic\Support\Str;
1718

1819
class TermsQuery extends Query
@@ -76,7 +77,9 @@ private function sortQuery($query, $sorts)
7677
[$sort, $order] = explode(' ', $sort);
7778
}
7879

79-
$query->orderBy($sort, $order);
80+
if ($sort = OrderBy::column($sort)) {
81+
$query->orderBy($sort, $order);
82+
}
8083
}
8184
}
8285

src/GraphQL/Queries/UsersQuery.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Statamic\GraphQL\Queries\Concerns\FiltersQuery;
1212
use Statamic\GraphQL\Types\JsonArgument;
1313
use Statamic\GraphQL\Types\UserType;
14+
use Statamic\Query\OrderBy;
1415
use Statamic\Support\Str;
1516

1617
class UsersQuery extends Query
@@ -65,7 +66,9 @@ private function sortQuery($query, $sorts)
6566
[$sort, $order] = explode(' ', $sort);
6667
}
6768

68-
$query->orderBy($sort, $order);
69+
if ($sort = OrderBy::column($sort)) {
70+
$query->orderBy($sort, $order);
71+
}
6972
}
7073
}
7174

src/Http/Controllers/CP/Assets/BrowserController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Statamic\Http\Resources\CP\Assets\Folder;
1515
use Statamic\Http\Resources\CP\Assets\FolderAsset;
1616
use Statamic\Http\Resources\CP\Assets\SearchedAssetsCollection;
17+
use Statamic\Query\OrderBy;
1718
use Statamic\Support\Arr;
1819

1920
class BrowserController extends CpController
@@ -87,8 +88,7 @@ public function folder(Request $request, $container, $path = '/')
8788
$totalAssets = $folder->queryAssets()->count();
8889
$totalItems = $totalAssets + $totalFolders;
8990

90-
if ($request->sort) {
91-
$sort = $request->sort;
91+
if ($sort = OrderBy::column($request->sort)) {
9292
$order = $request->order ?? 'asc';
9393
} else {
9494
$sort = $container->sortField();
@@ -153,8 +153,8 @@ public function search(Request $request, $container, $path = null)
153153
$query->where('folder', $path);
154154
}
155155

156-
if ($request->sort) {
157-
$query->orderBy($request->sort, $request->order ?? 'asc');
156+
if ($sort = OrderBy::column($request->sort)) {
157+
$query->orderBy($sort, $request->order ?? 'asc');
158158
}
159159

160160
$this->applyQueryScopes($query, $request->all());

0 commit comments

Comments
 (0)