Test fixes

This commit is contained in:
Jake Barnby
2022-08-14 02:55:15 +12:00
parent ed712fb196
commit 70758927cd
5 changed files with 27 additions and 30 deletions
Generated
+1 -1
View File
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "3c1c6b1b397973a275146054a3221610",
"content-hash": "029dcab43ed83efdf56d471a8cc26f50",
"packages": [
{
"name": "adhocore/jwt",
+3 -2
View File
@@ -287,7 +287,6 @@ class Realtime extends Adapter
$channels[] = 'documents';
$channels[] = 'databases.' . $database->getId() . '.collections.' . $payload->getCollection() . '.documents';
$channels[] = 'databases.' . $database->getId() . '.collections.' . $payload->getCollection() . '.documents.' . $payload->getId();
$roles = ($collection->getAttribute('documentSecurity', false))
? \array_merge($collection->getRead(), $payload->getRead())
: $collection->getRead();
@@ -301,7 +300,9 @@ class Realtime extends Adapter
$channels[] = 'files';
$channels[] = 'buckets.' . $payload->getAttribute('bucketId') . '.files';
$channels[] = 'buckets.' . $payload->getAttribute('bucketId') . '.files.' . $payload->getId();
$roles = ($bucket->getAttribute('permission') === 'bucket') ? $bucket->getRead() : $payload->getRead();
$roles = $bucket->getAttribute('fileSecurity', false)
? \array_merge($bucket->getRead(), $payload->getRead())
: $bucket->getRead();
}
break;
@@ -60,10 +60,10 @@ class DatabasesPermissionsGuestTest extends Scope
return [
[['read(any)']],
[['read(users)']],
[['create(any)', 'update(any)', 'delete(any)']],
[['read(any)', 'create(any)', 'update(any)', 'delete(any)']],
[['read(users)', 'create(users)', 'update(users)', 'delete(users)']],
[['read(any)', 'create(users)', 'update(users)', 'delete(users)']],
[['update(any)', 'delete(any)']],
[['read(any)', 'update(any)', 'delete(any)']],
[['read(users)', 'update(users)', 'delete(users)']],
[['read(any)', 'update(users)', 'delete(users)']],
];
}
@@ -29,13 +29,13 @@ class DatabasesPermissionsMemberTest extends Scope
[['read(any)']],
[['read(users)']],
[['read(user:random)']],
[['read(user:lorem)', 'create(user:lorem)', 'update(user:lorem)', 'delete(user:lorem)',]],
[['read(user:dolor)', 'create(user:dolor)', 'update(user:dolor)', 'delete(user:dolor)',]],
[['read(user:dolor)', 'read(user:lorem)', 'create(user:dolor)', 'update(user:dolor)', 'delete(user:dolor)',]],
[['create(any)', 'update(any)', 'delete(any)']],
[['read(any)', 'create(any)', 'update(any)', 'delete(any)']],
[['read(users)', 'create(users)', 'update(users)', 'delete(users)']],
[['read(any)', 'create(users)', 'update(users)', 'delete(users)']],
[['read(user:lorem)', 'update(user:lorem)', 'delete(user:lorem)',]],
[['read(user:dolor)', 'update(user:dolor)', 'delete(user:dolor)',]],
[['read(user:dolor)', 'read(user:lorem)', 'update(user:dolor)', 'delete(user:dolor)',]],
[['update(any)', 'delete(any)']],
[['read(any)', 'update(any)', 'delete(any)']],
[['read(users)', 'update(users)', 'delete(users)']],
[['read(any)', 'update(users)', 'delete(users)']],
];
}
+12 -16
View File
@@ -208,11 +208,13 @@ class MessagingTest extends TestCase
'$collection' => 'collection',
'$permissions' => [
'read(admin)',
'update(admin)',
'delete(admin)',
],
]),
database: new Document([
'$id' => 'database',
]),
collection: new Document([
'$id' => 'collection',
'$permissions' => [
@@ -220,9 +222,6 @@ class MessagingTest extends TestCase
'update(any)',
'delete(any)',
],
]),
database: new Document([
'$id' => 'database',
])
);
@@ -243,29 +242,28 @@ class MessagingTest extends TestCase
'delete(any)',
],
]),
database: new Document([
'$id' => 'database',
]),
collection: new Document([
'$id' => 'collection',
'$permissions' => [
'read(admin)',
'update(admin)',
'delete(admin)',
],
'documentSecurity' => true,
]),
database: new Document([
'$id' => 'database',
])
);
$this->assertContains('any', $result['roles']);
$this->assertNotContains('role:admin', $result['roles']);
$this->assertContains('admin', $result['roles']);
}
public function testFromPayloadBucketLevelPermissions(): void
{
/**
* Test Collection Level Permissions
* Test Bucket Level Permissions
*/
$result = Realtime::fromPayload(
event: 'buckets.bucket_id.files.file_id.create',
@@ -274,7 +272,6 @@ class MessagingTest extends TestCase
'$collection' => 'bucket',
'$permissions' => [
'read(admin)',
'update(admin)',
'delete(admin)',
],
@@ -290,10 +287,10 @@ class MessagingTest extends TestCase
);
$this->assertContains('any', $result['roles']);
$this->assertNotContains('role:admin', $result['roles']);
$this->assertNotContains('admin', $result['roles']);
/**
* Test Document Level Permissions
* Test File Level Permissions
*/
$result = Realtime::fromPayload(
event: 'buckets.bucket_id.files.file_id.create',
@@ -310,15 +307,14 @@ class MessagingTest extends TestCase
'$id' => 'bucket',
'$permissions' => [
'read(admin)',
'update(admin)',
'delete(admin)',
],
'documentSecurity' => true
'fileSecurity' => true
])
);
$this->assertContains('any', $result['roles']);
$this->assertNotContains('role:admin', $result['roles']);
$this->assertContains('admin', $result['roles']);
}
}