diff --git a/app/http.php b/app/http.php index d536189..07d4f9a 100644 --- a/app/http.php +++ b/app/http.php @@ -118,13 +118,14 @@ $namespace = $request->getHeader('x-utopia-namespace', ''); $timeoutsString = $request->getHeader('x-utopia-timeouts', '[]'); $database = $request->getHeader('x-utopia-database', ''); - $roles = $request->getHeader('x-utopia-auth-roles', ''); + $rolesString = $request->getHeader('x-utopia-auth-roles', ''); $status = $request->getHeader('x-utopia-auth-status', ''); $statusDefault = $request->getHeader('x-utopia-auth-status-default', ''); $shareTables = $request->getHeader('x-utopia-share-tables', ''); $tenant = $request->getHeader('x-utopia-tenant', ''); $timeouts = \json_decode($timeoutsString, true); + $roles = \json_decode($rolesString, true); /** * @var Adapter $resource @@ -159,7 +160,7 @@ $authorization->cleanRoles(); $authorization->addRole('any'); - foreach (\explode(',', $roles) as $role) { + foreach ($roles as $role) { $authorization->addRole($role); } diff --git a/tests/ProxyTest.php b/tests/ProxyTest.php index 916502e..1498995 100644 --- a/tests/ProxyTest.php +++ b/tests/ProxyTest.php @@ -40,19 +40,14 @@ private function call(string $method, string $endpoint, mixed $body = [], array $body['params'] = \base64_encode(\serialize($body['params'])); } - $timeouts = \json_encode(['*' => $this->timeout]); - if($timeouts == false) { - $timeouts = ''; - } - return Client::fetch($this->endpoint . $endpoint, [ 'x-utopia-secret' => $this->secret, 'x-utopia-namespace' => $this->namespace, 'x-utopia-database' => $this->database, - 'x-utopia-auth-roles' => \implode(',', $roles), + 'x-utopia-auth-roles' => \json_encode($roles) ?: '', 'x-utopia-auth-status' => $skipAuth ? 'false' : 'true', 'x-utopia-auth-status-default' => $this->defaultAuthStatus ? 'true' : 'false', - 'x-utopia-timeouts' => $timeouts, + 'x-utopia-timeouts' => \json_encode(['*' => $this->timeout]) ?: '', 'content-type' => 'application/json' ], $method, $body); }