平衡/akeneo-import-export-acl

dev-master / 1.x-dev 2016-04-26 07:41 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:40:17 UTC


README

导入/导出 ACL Bundle

背景

Akeneo提供了相当灵活的设置来配置对各种实体(如类别、属性组、地区)的访问级别(ACL)。前端完全覆盖了此功能,然而,导入/导出功能没有考虑到ACL配置

因此,任何用户都可以导出/导入任何数据,即使没有访问权限。

此外,用户对产品的访问是基于用户对其分配的类别的访问权限(例如,类别ACL配置)。这意味着您只有访问特定类别时才能查看/编辑产品。

然而,未分配任何类别的产品对所有用户都是可访问的。我们正在考虑产品不应该没有类别,因为没有办法定义产品的所有者。

解决方案

我们已为导入产品连接器(v1)实现了ACL支持。我们在产品导入配置文件中添加了两个设置(广泛使用)

  1. 允许导入与任何类别未关联的产品(上述设置)
  2. 允许导入部分数据
  • 跳过用户没有访问权限的属性导入
  • 跳过不存在的属性
  • 跳过用户没有访问权限的地区导入
  • 跳过用户没有访问权限的类别中的产品导入(检查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个测试用例。