Sylius角色权限-删除库存管理



我正在使用Sylius,并且一直在尝试创建一个只允许编辑产品的用户角色。我给了它以下权限:

  • 显示产品
  • 列表项
  • 编辑产品

没有应用其他权限,也没有检查父权限类别。我认为这些限制性权限会让用户角色只能访问管理中的"产品"菜单,但它似乎还添加了"库存级别"菜单。这个用户角色绝对不能看到或编辑库存级别,那么会发生什么呢?

这是Sylius权限的错误吗?权限是否还没有扩展到允许这种精细的控制级别?还是认为库存级别是产品的一个组成部分,它总是包含在与产品相关的权限中,以便管理员可以确保他们编辑的产品实际上是可用的?

我将接受删除库存权限的解决方案,尽管我认为我将在代码中弄脏我的手来做这件事。我也会接受对这背后的想法的见解,或者这是否是Sylius的错误。谢谢!

我在代码中找到了答案。文件是:src/Sylius/Bundle/WebBundle/Menu/BackendMenuBuilder.php

这是一个文件,在检查权限允许用户看到它之后,将所有这些项目放在管理菜单边栏上。这里有一段代码,看起来像这样:

if ($this->rbacAuthorizationChecker->isGranted('sylius.product.index')) { // THIS IS IT!
        $child->addChild('products', [
            'route' => 'sylius_backend_product_index',
            'labelAttributes' => ['icon' => 'glyphicon glyphicon-th-list'],
        ])->setLabel($this->translate(sprintf('sylius.backend.menu.%s.products', $section)));
        $child->addChild('inventory', [
            'route' => 'sylius_backend_inventory_index',
            'labelAttributes' => ['icon' => 'glyphicon glyphicon-tasks'],
        ])->setLabel($this->translate(sprintf('sylius.backend.menu.%s.stockables', $section)));
    }

这将添加产品菜单项,并同时基于相同的权限添加库存菜单项:'sylius.product.index'。我猜这要么还没有被分离成自己的权限,要么只是认为在大多数情况下,可以管理产品的用户也应该能够管理库存。我将为此创建一个新的权限来解决我的问题。

最新更新