根据用户角色的不同视图级别

时间:2017-07-31 08:24:56

标签: javascript sapui5

在我的应用程序中,我希望根据角色为不同用户实现多访问级别。我正在openUI5中开发应用程序。当我登录应用程序时,我知道用户拥有什么角色。根据这些角色,我想显示或隐藏某些链接,瓷砖,gui组件。

多访问级别我的意思是

  1. 显示/隐藏gui元素
  2. 禁止路由到应用程序中的指定位置
  3. 点数2.我已经实现了。这没问题 - 根据角色,我将特定路线添加到允许的路线。

    我很感激第1点的建议。最佳做法是什么?

    谢谢

1 个答案:

答案 0 :(得分:0)

根据用户的角色(一组授权规则),您可以通过以下方式控制UI:

UI中的巨大差异

如果UI根据用户角色应该非常不同,那么为每个角色甚至应用程序创建不同的视图集是有意义的。

一些“改变点”

如果没有太大差异,您可以设置配置JSON模型,该模型将包含特定UI元素的可见性规则,您将“可见”属性绑定到此配置模型。甚至可以从后端获取一组规则,因此它不会是UI上的硬编码,这非常适合自定义原因。

用户授权+对象状态处理

也可能是这种情况(通常在我的项目中),不仅用户角色会影响UI的状态,而且对象的状态或业务逻辑应该定义UI的外观。我正在谈论类似的事情:

  • 是否应显示或隐藏该字段;允许使用只读或可编辑模式;
  • 应该隐藏/可见/可点击操作按钮等等;
  • 应该隐藏/显示任何UI部分。

在这种情况下,通过使用所谓的“字段控件”让后端控制更容易。它们是OData实体类型(需要时)的简单属性,它包含UI的规则。

例如,在您的实体类型中,您有“Amount”字段,在某些情况下,它应该是只读的,而在某些其他情况下,它是可编辑的。所以你需要添加一个字段控件“UxFc_Amount”,它应该是整数类型并包含0,1或2:

0 - 表示字段应完全隐藏

1 - 表示字段应为只读

2 - 表示字段应该是可编辑的

然后绑定适当的控件属性,即输入控件:“editable”,“visible”,“enabled”。

对于按钮,您可以引入“操作控件”。假设您有一个绑定到整个页面的“标题”对象,并且根据用户的角色和内部对象状态/状态,“提交”按钮应该可用。所以你引入“UxAc_Submit”属性是一个“布尔”(Edm.Boolean)并将按钮的“可见”属性绑定到这个变量,如果它是假的 - 按钮将被隐藏。 / p>

可以使用相同的方法在UI上显示/隐藏整个部分(例如,当您使用ObjectPageLayout控件时)。