是否可以在字段级别添加对对象的权限

Is it possible to add permissions on object at field level

在基于PIMCORE解决方案的MDM实现中,我们希望根据用户权限隔离数据。目标是根据预定义的角色限制对对象属性的访问。

不同的可能性是通过视角或客户视图,但不可能在属性级别添加更详细的限制。另一种可能是在PIMCORE中做具体的开发,但这还是有点贵。

在您看来,在 PIMCORE 中是否有一种本地方法来管理这种数据隔离?或者你有办法在特定的开发中做到这一点吗?

有以下几种可能:

  1. 自定义布局

    自定义布局使您可以为特定用户定义数据对象的不同视图。您可以将某些字段从管理后端隐藏到某些用户,这是实现您想要的效果的好方法。缺点是这不适合“high-security 场景”,因为完整的数据对象仍在后台发送。

    因此,如果数据高度安全,则它可能在通信流中可读 (https://pimcore.com/docs/6.x/Development_Documentation/Objects/Object_Classes/Class_Settings/Custom_Layouts.html)。

  2. 加密字段

    也许您可以使用加密字段来进一步提高安全性。自定义布局和加密字段的组合至少应该使某些用户无法读取数据 (https://pimcore.com/docs/6.x/Development_Documentation/Objects/Object_Classes/Data_Types/Others.html)。我不是100%确定,应该测试一下。

  3. 工作流程

    您可以使用工作流来根据当前对象状态限制对对象的某些操作。工作流有可能完全实施权限并禁止某些用户执行某些操作。

    https://pimcore.com/docs/6.x/Development_Documentation/Workflow_Management/Permissions.html

  4. 使用关系

    这可能是最简单、最好的解决方案之一。为敏感数据创建单独的 类 并通过 Many-To-One 或 Many-To-Many 关系连接数据对象并限制对它们的访问。这样您就可以确保某些用户永远无法访问或编辑敏感数据。

    https://pimcore.com/docs/6.x/Development_Documentation/Objects/Object_Classes/Data_Types/Relation_Types.html