Skip to content

Commit 4237cd0

Browse files
committed
fix: request rules, check value type before assert content
1 parent da43e4a commit 4237cd0

File tree

4 files changed

+17
-0
lines changed

4 files changed

+17
-0
lines changed

src/Requests/Rules/Fields.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ public function __construct(
2828

2929
public function passes($attribute, $value): bool
3030
{
31+
if (!is_array($value)) {
32+
return false;
33+
}
34+
3135
$desired = SupportFields::parse($value);
3236
$schema = $this->resource::schema();
3337

src/Requests/Rules/Includes.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ public function __construct(
2828

2929
public function passes($attribute, $value): bool
3030
{
31+
if (!is_string($value)) {
32+
return false;
33+
}
34+
3135
$desired = SupportIncludes::parse($value);
3236
$schema = $this->resource::schema();
3337

tests/Unit/Requests/Rules/FieldsTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ public function testPasses()
1212
{
1313
$rule = new Fields(UserResource::class);
1414

15+
$this->assertFalse($rule->passes(null, 'user,post'));
16+
1517
$this->assertTrue($rule->passes(null, [
1618
'user' => 'name,email',
1719
'post' => 'content',

tests/Unit/Requests/Rules/IncludesTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ public function testPasses()
1212
{
1313
$rule = new Includes(UserResource::class);
1414

15+
$this->assertFalse($rule->passes(null, [
16+
'posts',
17+
'posts.user',
18+
'posts.user.comments',
19+
'posts.user.posts'
20+
]));
21+
1522
$this->assertTrue($rule->passes(null, implode(',', [
1623
'posts',
1724
'posts.user',

0 commit comments

Comments
 (0)