• SAP Commerce Cloud 里的 User 模型和 Restriction 的关系


    SAP Hybris 的 MENU item 可以被分配一个叫做 User Group restriction 的属性。

    如果一个用户属于一个特殊的用户组,那么菜单项(menu item)应该是可见的。

    现在的问题是,这个菜单项仍然显示在店面/网站上(虽然不能点击它),不管是匿名用户还是已注册用户。

    在 Accelerator 里不会发生这个问题。

    这个问题的原因在于,Spartacus 本身对 SAP Hybris restriction 一无所知 - 它只是呈现从 API 调用返回的任何数据。

    下图是 SAP 电商云 Spartacus UI 用户注册和登录界面。

    SAP Commerce 中的用户和用户组都源自通用 Principal 类型,该类型是所有其他与用户相关的、更具体的子类型的基础。

    Principal 类型是用户类型的基础,并且间接地是用户组类型的基准类型 。 这些是 hybris 项目实施人员使用出厂默认用户和用户组帐户或创建自己的用户帐户和用户组帐户的起点。

    实施人员可以创建自己的员工子类型(Employee subtypes)以反映公司结构以及员工所扮演的角色或结构。还可以为客户创建帐户,或创建前端应用程序,让客户创建和管理他们自己的客户帐户。

    Principal 是用户和用户组类型的 main abstract 类。 然而,在通常的非正式使用中,用户和用户组也被称为 Principal.

    下图概述了 SAP Commerce 中的 Principal 类型。

    上图中的实线空心三角形,在 UML 图里代表泛化关系。

    泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展,一般用来表示继承的关系。

    上图在 Principal 类中,我们可以看到 uid 字段。 这代表必须为每个用户和用户组项目定义的唯一标识符。这样做的主要目的是为用户和组提供差异化因素,并识别每个项目。 因此,从 Principal 继承的所有类型的 uid 必须是全局唯一的。 这意味着我们不能让用户和组具有相同的名称。 此外,由于属性 uid 对于客户和员工都是唯一的,因此员工(employee)和客户(Customer)也不能具有相同的标识符。

  • 相关阅读:
    数字化转型的实战法则:全面剖析《数字化专业知识体系》中的落地策略与最佳实践
    DDD之落地实践
    使用Cython为Python开发C++扩展
    Pinely Round 1 (Div. 1 + Div. 2) E - Make It Connected思维&&分类讨论
    外包干了3个月,技术确实退步明显
    【面试经典150 | 矩阵】矩阵置零
    mysql 字符串拼接的几种方式
    Unity UGUI的RawImage(原始图片)组件的介绍及使用
    应用软件安全编程-20生成强随机数
    Spring Cloud Alibaba
  • 原文地址:https://blog.csdn.net/i042416/article/details/127824567