Skip to content

Commit 42a2335

Browse files
authored
Merge pull request #181 from fleetbase/dev-v1.6.29
Fix: Critical cache key collision bug in ApiModelCache
2 parents 3201931 + f880712 commit 42a2335

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

src/Support/ApiModelCache.php

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,21 +58,22 @@ public static function generateQueryCacheKey(Model $model, Request $request, arr
5858
$table = $model->getTable();
5959
$companyUuid = static::getCompanyUuid($request);
6060

61-
// Get all relevant query parameters
62-
$params = [
63-
'limit' => $request->input('limit'),
64-
'offset' => $request->input('offset'),
65-
'page' => $request->input('page'),
66-
'sort' => $request->input('sort'),
67-
'order' => $request->input('order'),
68-
'query' => $request->input('query'),
69-
'search' => $request->input('search'),
70-
'filter' => $request->input('filter'),
71-
'with' => $request->input('with'),
72-
'expand' => $request->input('expand'),
73-
'columns' => $request->input('columns'),
61+
// Get ALL query parameters from the request
62+
// This ensures different filters (e.g., type=customer vs type=contact) generate different cache keys
63+
$params = $request->query();
64+
65+
// Remove internal/non-cacheable parameters that shouldn't affect cache key
66+
$excludedParams = [
67+
'_', // Cache-busting timestamp
68+
'timestamp', // Cache-busting timestamp
69+
'nocache', // Explicit cache bypass
70+
'_method', // Laravel method override
7471
];
7572

73+
foreach ($excludedParams as $excluded) {
74+
unset($params[$excluded]);
75+
}
76+
7677
// Merge additional parameters
7778
$params = array_merge($params, $additionalParams);
7879

0 commit comments

Comments
 (0)