-
对按钮的权限管控:
效果展示:
当前角色为查看组,无新增按钮,无删除操作
当前角色为系统管理员,有新增按钮,有删除操作-
需求背景:在后台角色中,有部分角色仅有查看权限,无增删改权限,此时就需要根据角色对按钮进行隐藏/显示管控。
-
实现过程:(前期配置工作已完成,各开发负责人只需操作第vi点即可)
-
在APEX应用→共享组件→应用程序项→创建新项ROLE_CODE
在登录后存储函数新增对应变量v_role_code,从角色表中获取对应role_code,最后存储到应用程序项中
-
-
-
在切换角色的服务器端代码也要加上role_code,确保切换角色同步角色code
-
做完以上操作登录后就可以获取到角色code了
-
在应用→共享组件→授权方案→创建名为“系统需求编辑权限-查询角色CODE(返回布尔值)”的方案,代码如下
-
DECLARE
L_AUTH NUMBER; -- 去掉长度限制,避免溢出
BEGIN
-- 查询用户当前角色CODE是否为VIEW_REPORT
SELECT COUNT(1)
INTO L_AUTH
FROM XXX_USER_ROLE UR
LEFT JOIN XXX_ROLE R ON UR.ROLE_ID = R.ROLE_ID
WHERE R.ROLE_TYPE <> 'VIEW_REPORT' -- 查询角色CODE不为VIEW_REPORT的数量
AND UR.USER_ID = :MPF_USER_ID
AND UR.DEL_FLAG = 0
AND UR.TENANT_ID = :USER_TENANT
AND R.DEL_FLAG = 0
AND R.ROLE_ID = :ROLE_ID;
-- 根据查询结果返回 TRUE 或 FALSE
IF L_AUTH >= 1 THEN
RETURN TRUE; -- 用户当前角色CODE不为VIEW_REPORT,返回 TRUE
ELSE
RETURN FALSE; -- 用户当前角色CODE为VIEW_REPORT,返回 FALSE
END IF;
END;
-
在需要管控的按钮→安全性 选择刚刚创建的授权方案即可
-
对操作的权限管控:
-
需求背景:与按钮权限同理,在后台角色中,有部分角色仅有查看权限,无增删改权限,需要根据角色对操作内的权限进行隐藏/显示管控。
-
具体实现:
-
OPERATION操作列→设置 HTML表达式→新增一个动态CSS类,is_modify_X 后缀X使用动态变量&IS_HIDE.标识
-
在交互式网格SQL定义IS_HIDE,定义依是登录用户的当前角色code,类型设置为隐藏
-
在页→CSS 内嵌 进行样式和显示/隐藏的设置
-
.is_modify_1 {
color: red;
/* text-align: center; */
}
.hide_btn {
display: none;
}
.is_modify_0 {
display: none;
}
到这里就大功告成了