Directus 绕过ACL以使用itemsService运行更新
我正在尝试运行更新集合项的公共终结点。我正在使用itemsService->update(),但我得到了一个禁止收集更新异常错误Directus 绕过ACL以使用itemsService运行更新,directus,Directus,我正在尝试运行更新集合项的公共终结点。我正在使用itemsService->update(),但我得到了一个禁止收集更新异常错误 { "error": { "code": 302, "message": "Updating item from \"products\" collection was denied", "class": "Directus\\Permissions\\Exception\\ForbiddenCollection
{
"error": {
"code": 302,
"message": "Updating item from \"products\" collection was denied",
"class": "Directus\\Permissions\\Exception\\ForbiddenCollectionUpdateException",
"file": "/var/www/app/src/core/Directus/Permissions/Acl.php",
"line": 1044
}
}
我尝试使用以下代码段将用户设置为管理员:
$this->_acl->setPublic(false);
$this->_acl->setUserId(1);
$this->_acl->setCollectionPermission('products', $this->_acl::PERMISSION_FULL);
当我转储$this->\u acl的值时,我可以看到添加了产品的全局许可,但当我尝试端点时,异常仍然存在
你知道我怎样才能做到这一点吗
TIA您是否在端点中运行此功能 尝试使用以下语法(为我将ACL设置为null似乎绕过了ACL身份验证,但仍使用access_令牌进行Directus活动和修订):
文档:您是否在端点中运行此操作 尝试使用以下语法(为我将ACL设置为null似乎绕过了ACL身份验证,但仍使用access_令牌进行Directus活动和修订):
文档:我尝试过您以前提供的语法,但在专用窗口中尝试时ACL仍处于触发器状态。我尝试过您以前提供的语法,但在专用窗口中尝试时ACL仍处于触发器状态。
$container = \Directus\Application\Application::getInstance()->getContainer();
$dbConnection = $container->get('database');
$acl = $container->get('acl');
$tableGateway = Directus\Database\TableGatewayFactory::create('COLLECTION_NAME', [
'connection' => $dbConnection,
'acl' => null (false)
]);