当前位置:主页 > 域名解析 > 正文

云解析_云主机是干什么的_评分榜

时间:2021-07-22 06:40 来源:埃里克云 编辑:埃里克云

核心提示

这个博客是关于一个自定义库的,它可以根据用户的角色在运行时调整SAP/openui5应用程序。该库是开源的,可以在GitHub上找到。 后台 尽管授权必须在后端执行,但在实践中,我们经常...

云解析_云主机是干什么的_评分榜

这个博客是关于一个自定义库的,它可以根据用户的角色在运行时调整SAP/openui5应用程序。该库是开源的,可以在GitHub上找到。

后台

尽管授权必须在后端执行,但在实践中,我们经常得到这样的要求:"如果用户没有XYZ权限,则隐藏此按钮"。当然,这并不意味着我们不在后端执行授权检查好吧,这与基于UI的验证的情况基本相同:很高兴拥有它们,但是验证也必须存在于服务层中。

现在是怎么做到的?

好吧,如果你看到SAP自己的一些UI5应用程序(例如HANA cockpit应用程序、XS Admin等),可以通过以下步骤完成:

[后端]创建一个专门的服务/端点/任何公开授权信息的东西。[前端]向这个服务发出请求,并将结果保存在一个模型中(通常是一个JSONModel,尽管我也看到有一个ODataModel用于此)。[前端]在整个视图中使用绑定来隐藏/禁用基于用户角色或权限的控件。

可能还有其他方法,但根据我的经验,这是最常见的。

那么问题是什么?

如果你看一下UI5SDK,你会在"安全"一章看到以下内容:

所以我们不会很快得到任何标准的东西。但是有一些可重用的东西来做这类事情是很好的。

使用上面介绍的方法,您有一个很大的"问题":您的应用程序与后端的授权方案紧密耦合。如果有些东西发生了变化(例如,一个角色被分成两个角色),那么你必须浏览所有的视图,并改变许多小地方。这可能是痛苦的,而且非常容易出错(你可能很容易忽略一个地方或另一个地方)。

换言之:基于授权的自适应正在污染你的应用程序。

我的解决方案:自定义库

为什么我们不能创建一个自定义库来处理这个问题?

为了避免我们之前发现的"问题",它应该在不污染应用程序的视图或控制器的情况下发挥神奇的作用(或者至少要尽量减少这种影响)。

我们仍然需要后端服务来检索授权信息,但至少用户界面将是"干净的"。

我们必须决定这个库将拥有什么样的特性以及它将使用什么概念。下面的列表可能是一个很好的起点:

用户界面应用程序知道的角色/权限的声明性规范。这不应该与后端角色相同。通常,它应该是用户可以执行的概念性操作的列表(具有适当的粒度;"right"的定义取决于应用程序本身)。角色间关系的定义。示例:如果您是"超级用户",那么您拥有所有其他可能的权限。基于这些角色的运行时值的应该做什么(UI应该如何调整)的声明性规范。让我们将这些操作命名为"操作":静态操作:应用一次(最好在我们知道用户的角色之后)。动态操作:根据UI中显示的数据应用。这是HANA分析特权的UI版本。

如果我们能轻松地扩展这个库,那也太好了。

剧透警告:我已经实现了一些可以从上面实现的东西。它仍然是一个粗略的版本,但我觉得它已经准备好让全世界都看到它了。

它是开源的,如果我得到一些反馈(功能请求、错误报告等)或者甚至一些帮助(拉请求、分叉),我会很高兴的。你可以在GitHub上找到它,并阅读更多关于如何使用它的信息,已经有了什么,甚至可以看到一个非常小的示例。

我只会在博客的其余部分写一个小的偷偷的峰值(如果对库有兴趣的话,也许我会写更多的博客文章)。

概述

在解决方案的中心,有一个角色规范。每个组件都可以有自己的角色规范。这些规范包含:

已知角色列表。含义图:定义每个超级坐标角色所隐含的角色。角色计算表达式的映射。选择规则-操作对列表。

我使用的方法非常简单,以XML预处理为中心:

每个组件都可以使用给定的角色规范(JSON对象)在库中注册。此时(或稍后,当获得角色规范或角色分配时),基于用户拥有的基本角色和角色之间的关系来计算静态角色。无论何时实例化已注册组件的视图,都会调用预处理器。预处理器使用"ControlIterator"遍历视图的每个控件。控制树按宽度优先顺序遍历。根据选择规则(选择器)检查每个控件。如果控件匹配,则在控件上执行相应的操作。

操作

可以应用于控件的操作是库的"果汁"。它们可以是"静态"(效果应用一次)或"动态"(效果取决于显示的数据)。

动态动作通过辅助元素实现。这个helper元素在预处理期间被添加到控件树中,并与其目标控件(它必须影响的控件)配对。此元素的目的是访问视图或目标元素的绑定上下文,并在运行时应用某些操作。

可扩展性

  • <strong>云存储_佛山顺德网站建设_超低折扣</strong> 云存储_佛山顺德网站建设_超低折扣

    您是否有过这样的问题:是否可以将事务FBL5N(客户行项目显示)移植到Webdynpro?不?你真幸运!重建FBL5N不是我最喜欢做的5件事,所以当我得到这个问题时,我很不愿意开始。幸运的...

  • <strong>云主机_获取服务器地址_促销</strong> 云主机_获取服务器地址_促销

    到目前为止,我们已经创建了两个应用程序。一个用于维护员工特定的奖金计划,另一个用于授予员工奖金。到目前为止,奖金仅取决于已完成销售订单的净额。 任务:在自定义业务...

  • <strong>天翼云_免费虚拟主机管理系统_免费6个月</strong> 天翼云_免费虚拟主机管理系统_免费6个月

    任务:在标准业务对象上创建自定义字段。 示例:要计算与产品相关的奖金,标准业务对象"产品"将获得奖金百分比的自定义字段 要能够打开并调整"管理产品主数据"应用程序的UI您的...

  • <strong>阿里云_美橙互联云主机_怎么样</strong> 阿里云_美橙互联云主机_怎么样

    任务:在标准业务对象上创建自定义字段。 示例:要计算与产品相关的奖金,标准业务对象"产品"将获得奖金有效期的自定义字段。 要适应"管理产品主数据"应用程序的UI,您的用户需...

  • <strong>香港服务器_数据库上机实验_速度快</strong> 香港服务器_数据库上机实验_速度快

    到目前为止,我们已经创建了两个应用程序。一个是维护员工特定的奖金计划,另一个是为员工发放奖金。到目前为止,奖金权利仅取决于已完成销售订单的净额,但在奖金计划中,...

  • <strong>域名备案_数据库文本类型_新注册优惠</strong> 域名备案_数据库文本类型_新注册优惠

    各位开发人员好, 这里我要写一个关于sapui5的有趣话题。根据状态更改sap.m.表的整行颜色。通常我们在状态字段中保留一个文本,并根据状态更改文本的颜色。但是,现在客户问这个...

  • <strong>专属服务器_数据库显示正在还原_企业级</strong> 专属服务器_数据库显示正在还原_企业级

    多年来,SAP客户一直有机会要求对SAP功能进行更改,并就所提供的软件解决方案提出改进建议。 以前我们有开发要求,如今,这已被客户的影响力所取代项目该项目的主要目的是收集...

  • <strong>CDN_合肥建设网站_新用户</strong> CDN_合肥建设网站_新用户

    我写这个博客是为了展示一个场景,向 添加一个自定义标题sap.ui.unified.Shell控件。 统一的Shell控件不直接提供标题财产。还有外壳被分成几个区域,比如左边的菜单按钮,搜索栏位于...

  • <strong>香港服务器_中国近代报刊数据库_安全稳</strong> 香港服务器_中国近代报刊数据库_安全稳

    大家好, 我正在使用企业门户7.5版。 在使用自定义splash映像时,我在使用显示规则中配置的AJAX框架页面登录门户时遇到了splash映像的外观问题。 在我的情况下,Splash图像垂直向下显...