diff --git a/app/controllers/web/console.php b/app/controllers/web/console.php index b7e8cd731f..f2ffad4162 100644 --- a/app/controllers/web/console.php +++ b/app/controllers/web/console.php @@ -5,6 +5,7 @@ use Appwrite\Utopia\Response; use Appwrite\Utopia\View; use Utopia\App; use Utopia\Config\Config; +use Utopia\Database\Database; use Utopia\Domains\Domain; use Utopia\Database\Validator\UID; use Utopia\Storage\Storage; @@ -334,12 +335,25 @@ App::get('/console/databases/document') ]) ; + $permissions = new View(__DIR__ . '/../../views/console/comps/permissions-matrix.phtml'); + + $permissions + ->setParam('method', 'databases.getDocument') + ->setParam('data', 'project-document') + ->setParam('permissions', \array_filter(Database::PERMISSIONS, fn ($perm) => $perm != Database::PERMISSION_CREATE)) + ->setParam('params', [ + 'collection-id' => '{{router.params.collection}}', + 'database-id' => '{{router.params.databaseId}}', + 'document-id' => '{{router.params.id}}', + ]); + $page = new View(__DIR__ . '/../../views/console/databases/document.phtml'); $page ->setParam('new', false) ->setParam('database', $databaseId) ->setParam('collection', $collection) + ->setParam('permissions', $permissions) ->setParam('logs', $logs) ; @@ -356,13 +370,25 @@ App::get('/console/databases/document/new') ->param('collection', '', new UID(), 'Collection unique ID.') ->inject('layout') ->action(function (string $databaseId, string $collection, View $layout) { + + $permissions = new View(__DIR__ . '/../../views/console/comps/permissions-matrix.phtml'); + $permissions + ->setParam('data', 'project-document') + ->setParam('permissions', \array_filter(Database::PERMISSIONS, fn ($perm) => $perm != Database::PERMISSION_CREATE)) + ->setParam('params', [ + 'collection-id' => '{{router.params.collection}}', + 'database-id' => '{{router.params.databaseId}}', + 'document-id' => '{{router.params.id}}', + ]); + $page = new View(__DIR__ . '/../../views/console/databases/document.phtml'); $page ->setParam('new', true) ->setParam('database', $databaseId) ->setParam('collection', $collection) + ->setParam('permissions', $permissions) ->setParam('logs', new View()) ; diff --git a/app/views/console/databases/document.phtml b/app/views/console/databases/document.phtml index e579ab3757..e201b31fe2 100644 --- a/app/views/console/databases/document.phtml +++ b/app/views/console/databases/document.phtml @@ -2,6 +2,7 @@ $new = $this->getParam('new', false); $logs = $this->getParam('logs', null); +$permissions = $this->getParam('permissions', null); ?>
getParam('logs', null); -
+

Permissions

- - -
Add 'any' for wildcard access
- - - -
Add 'any' for wildcard access
+ render() ?>