平衡 / akeneo-import-export-acl
导入/导出 ACL Bundle
Requires
- php: >=5.4.9
This package is not auto-updated.
Last update: 2024-09-20 19:40:17 UTC
README
导入/导出 ACL Bundle
背景
Akeneo提供了相当灵活的设置来配置对各种实体(如类别、属性组、地区)的访问级别(ACL)。前端完全覆盖了此功能,然而,导入/导出功能没有考虑到ACL配置
因此,任何用户都可以导出/导入任何数据,即使没有访问权限。
此外,用户对产品的访问是基于用户对其分配的类别的访问权限(例如,类别ACL配置)。这意味着您只有访问特定类别时才能查看/编辑产品。
然而,未分配任何类别的产品对所有用户都是可访问的。我们正在考虑产品不应该没有类别,因为没有办法定义产品的所有者。
解决方案
我们已为导入产品连接器(v1)实现了ACL支持。我们在产品导入配置文件中添加了两个设置(广泛使用)
- 允许导入与任何类别未关联的产品(上述设置)
- 允许导入部分数据
- 跳过用户没有访问权限的属性导入
- 跳过不存在的属性
- 跳过用户没有访问权限的地区导入
- 跳过用户没有访问权限的类别中的产品导入(检查PIM中的当前类别和导入文件中的类别)
添加了适当的提示,例如
- 用户没有编辑产品的权限
- 用户没有编辑属性的权限(列表)
- 必须填写类别
实现的功能涵盖了产品导入中缺失的ACL部分
路线图
- 为导出和快速导出实现相同的方法
- 为其他导入/导出连接器(如关联)实现ACL支持
企业版和社区版的用法
企业版
- 上述所有功能均可用于企业版
社区版
- 社区版没有ACL,因此所有权限设置/功能都没有用途
- 设置“允许导入与任何类别未关联的产品”- 将肯定用于社区版
- 设置“允许导入部分数据”(跳过不存在的属性)- 将肯定用于社区版,因为它为使用未知列(属性)的导入文件提供了可能性,目前用户应该删除Akeneo中不存在的所有列,否则导入会失败
安装
步骤1. 将其用作composer的依赖项
composer require balance/akeneo-import-export-acl
步骤2. 在<path_to_akeneo>/app/AppKernel.php
中添加3行,在registerBundles函数中
$bundles[] = new Balance\Bundle\ConnectorBundle\BalanceConnectorBundle();
$bundles[] = new Balance\Bundle\CatalogBundle\BalanceCatalogBundle();
$bundles[] = new Balance\Bundle\SecurityBundle\BalanceSecurityBundle();
步骤3. 清除缓存,执行命令:php console cache:clear --env=prod
步骤4. 如果需要,修复文件夹权限:chmod 777 app/cache -R
步骤5. 欣赏!
测试用例
已使用测试导入数据记录了4个测试用例。