Skip to content

Commit 460a3d2

Browse files
authored
Merge pull request #102 from Lomkit/fix/filter-not-authorized-relation
🐛 including not authorized relation
2 parents bc82057 + 51524b4 commit 460a3d2

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/Concerns/Resource/ConfiguresRestParameters.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public function isNestedField(string $field, Relation $relation = null)
5757

5858
$fieldRelation = $this->relation(Str::before($field, '.'));
5959

60-
return $fieldRelation->resource()->isNestedField(Str::after($field, '.'), $fieldRelation);
60+
return $fieldRelation?->resource()->isNestedField(Str::after($field, '.'), $fieldRelation) ?? false;
6161
}
6262

6363
return in_array($field, $this->getFields(App::make(RestRequest::class)));

tests/Feature/Controllers/SearchFilteringOperationsTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,28 @@ public function test_getting_a_list_of_resources_filtered_by_not_authorized_fiel
3636
$response->assertJsonStructure(['message', 'errors' => ['search.filters.0.field']]);
3737
}
3838

39+
public function test_getting_a_list_of_resources_filtered_by_not_authorized_relation_field(): void
40+
{
41+
ModelFactory::new()->count(2)->create();
42+
43+
Gate::policy(Model::class, GreenPolicy::class);
44+
45+
$response = $this->post(
46+
'/api/models/search',
47+
[
48+
'search' => [
49+
'filters' => [
50+
['field' => 'non_authorized_relation.field', 'value' => 'value'],
51+
],
52+
],
53+
],
54+
['Accept' => 'application/json']
55+
);
56+
57+
$response->assertStatus(422);
58+
$response->assertJsonStructure(['message', 'errors' => ['search.filters.0.field']]);
59+
}
60+
3961
public function test_getting_a_list_of_resources_filtered_by_model_field_using_default_operator(): void
4062
{
4163
$matchingModel = ModelFactory::new()->create(['name' => 'match'])->fresh();

0 commit comments

Comments
 (0)