diff --git a/src/Appwrite/Event/Validator/Event.php b/src/Appwrite/Event/Validator/Event.php index d5ad85475d..ce0f3e0067 100644 --- a/src/Appwrite/Event/Validator/Event.php +++ b/src/Appwrite/Event/Validator/Event.php @@ -87,11 +87,14 @@ class Event extends Validator } if ($attribute ?? false) { - if ( - !\array_key_exists($attribute, $events[$type][$action]) || - (($subType ?? false) && !\array_key_exists($attribute, $events[$type][$subType][$action])) - ) { - return false; + if (($subType ?? false)) { + if (!\array_key_exists($attribute, $events[$type][$subType][$action])) { + return false; + } + } else { + if (!\array_key_exists($attribute, $events[$type][$action])) { + return false; + } } } diff --git a/tests/unit/Event/Validator/EventValidatorTest.php b/tests/unit/Event/Validator/EventValidatorTest.php index f0886ae5a7..e523999599 100644 --- a/tests/unit/Event/Validator/EventValidatorTest.php +++ b/tests/unit/Event/Validator/EventValidatorTest.php @@ -44,6 +44,7 @@ class EventValidatorTest extends TestCase $this->assertTrue($this->object->isValid('buckets.*')); $this->assertTrue($this->object->isValid('teams.*')); $this->assertTrue($this->object->isValid('users.*')); + $this->assertTrue($this->object->isValid('teams.*.memberships.*.update.status')); /** * Test for FAILURE @@ -57,5 +58,6 @@ class EventValidatorTest extends TestCase $this->assertFalse($this->object->isValid('collections.*.documents.*.unknown')); $this->assertFalse($this->object->isValid('users.torsten.unknown')); $this->assertFalse($this->object->isValid('users.torsten.delete.email')); + $this->assertFalse($this->object->isValid('teams.*.memberships.*.update.unknown')); } }