Sylius 角色权限 - 删除库存管理
Sylius Role Permissions - Remove Inventory Management
我正在与 Sylius 合作,并一直在尝试创建一个只允许编辑产品的用户角色。我已授予它以下权限:
- 显示产品
- 列表项
- 编辑产品
没有应用其他权限,也没有检查父权限类别。我认为这些限制性权限将使该用户角色只能访问管理中的 'products' 菜单,但它似乎还添加了 'Inventory Levels' 菜单。这个用户角色绝对不能查看或编辑库存水平,那又如何呢?
这是 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'。我想这要么还没有被分离到它自己的权限中,要么只是认为在大多数情况下,可以管理产品的用户也应该能够管理库存。我将为此创建一个新权限来解决我的问题。
我正在与 Sylius 合作,并一直在尝试创建一个只允许编辑产品的用户角色。我已授予它以下权限:
- 显示产品
- 列表项
- 编辑产品
没有应用其他权限,也没有检查父权限类别。我认为这些限制性权限将使该用户角色只能访问管理中的 'products' 菜单,但它似乎还添加了 'Inventory Levels' 菜单。这个用户角色绝对不能查看或编辑库存水平,那又如何呢?
这是 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'。我想这要么还没有被分离到它自己的权限中,要么只是认为在大多数情况下,可以管理产品的用户也应该能够管理库存。我将为此创建一个新权限来解决我的问题。