SuperMap iPortal权限介绍

作者:yx


文章目录

  • 前言
  • 一、内置权限
  • 二、自定义权限(11.1.0及以后版本)
    • 1、修改配置文件
    • 2、页面展示
    • 3、api调用
    • 4、结果验证
    • 5、实际应用


前言

iPortal 用户访问和使用门户中资源的能力取决于其用户类型与在门户中拥有的权限,权限通过角色分配给用户,基于角色实现对门户资源的访问控制。有关 iPortal 的权限可以分为内置权限和自定义权限。接下来一起看看吧!


一、内置权限

SuperMap iPortal中的内置权限按照模块、资源、操作的不同划分到了非常小的颗粒度。权限划分请参考:角色管理。方便用户根据业务需要,为自定义角色分配充分且必要的权限集合。

二、自定义权限(11.1.0及以后版本)

用户扩展的开发成果如何进行权限控制呢?例如:前端扩展页面要根据自定义权限来控制UI的显隐,后端自定义RestAPI 要根据自定义权限控制 RestAPI 是否有权访问。在这种情况下,用户可扩展细粒度权限控制项来实现。从11.1.0版本开始iPortal支持自定义权限。

1、修改配置文件

编辑 %SuperMap iPortal_HOME%\webapps\iportal\resources\admin-ui\extend 目录中的 permissions.json 文件,将自定义权限表达式以 json 格式写入。该文件可以在角色管理的权限列表中增加针对访问扩展页面的权限设置项,支持中文、英文两种语言,示例如下:

{"permissions":[{"permission": "portal:custom:admin:extendsPage:viewPage1","label": {"zh": "查看iframe扩展示例页面","en": "View iframe extends page"}}]
}

参数介绍:

  • permissions:权限数组

    • permission:单个权限名, 权限表达式的定义格式 需要和 系统内置权限表达式 加以区分,具体建议如下:

      • 自定义常规权限格式:portal:custom:user:xxx
      • 自定义管理权限格式:portal:custom:admin:xxx
    • label:该权限在角色管理权限列表中的说明。其中 zh 为中文环境下的说明,en 为英文环境下的说明

2、页面展示

保存后,以管理员身份登录 iPortal,即可在管理页面添加角色时看到扩展的内容,如下图所示:
在这里插入图片描述

3、api调用

新建的角色绑定扩展的权限保存后,将该角色分配给用户A,用户A就具备了该权限。调用userprofile接口即可查询当前用户的用户级配置信息,其中modulePermissions字段记录了该用户的权限信息。
userProfile接口介绍如下:
通过对 userProfile 资源发送 GET 请求,可以查询当前用户的用户级配置信息。用户级配置信息包括用户名、用户昵称、用户的类型、用户的角色、用户拥有的权限、用户具有编辑使用权限的 WebApps 等。

GET请求查看当前用户的用户级配置信息
请求参数scope:指定查询的用户级配置信息项。
如果未设置,则返回当前用户所有的用户级配置信息,设置参数后,会返回指定的配置信息,请求参数必须包含在 URI 中。参数类型:String[]
响应结构1)userName:用户名。参数类型:String
2)nickName:用户的昵称。参数类型:String
3)type:用户的类型。包括创建者 “CREATOR” 和查看者 “VIEWER” 两类。参数类型:String
4)theme:用户设置的偏好主题。默认使用管理员配置好的默认主题。参数类型:String
5)roles:用户分配的角色。参数类型:String[]
6)modulePermissions:用户所拥有的权限。参数类型:String[]
7)editableWebApps:用户具有使用权限的 WebApps。参数类型:String[]

4、结果验证

这里以postman发请求为例,截图中可以发现设置的自定义权限生效了
在这里插入图片描述

5、实际应用

有关前端如何使用自定义权限表达式请参考:案例1—以 iFrame 形式扩展新的管理页面,后端自定义RestAPI 判断当前用户有没有某个(自定义)权限,可以通过下面一句代码进行判断。

boolean isPermitted = ThreadContext.getSubject().isPermitted("portal:custom:admin:extendsPage:viewPage1");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/276920.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 图论算法之欧拉路径、欧拉回路算法(一笔画完)

公众号:编程驿站 1. 欧拉图 本文从哥尼斯堡七桥的故事说起。 哥尼斯堡城有一条横贯全市的普雷格尔河,河中的两个岛与两岸用七座桥连结起来。当时那里的居民热衷于一个话题:怎样不重复地走遍七桥,最后回到出发点。这也是经典的一…

【ChatGLM3】第三代大语言模型多GPU部署指南

关于ChatGLM3 ChatGLM3是智谱AI与清华大学KEG实验室联合发布的新一代对话预训练模型。在第二代ChatGLM的基础之上, 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、…

订单系统设计-状态机

1. 状态机 1.1 状态机简介 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。 有限状态机一般都有以下特点: 可以用状态来描述事物,并且任一时刻,事物总是处于一种状态;事物拥有的状态总数…

java基础大纲思维导图

java基础大纲思维导图 不是卖资料!!!! 一段废话:自己断断续续整理的一份技术大纲,仅作参考!博客只作为一些知识点和经验的记录,真正动力来源还是得查漏补缺规划好路线和方向 先上一份…

Win11 跑通tensorRT

准备 1.安装cuda,成功之后文件夹如下图所示 2.下载cudnn,把cudnn对应的文件放在cuda里面 3.安装vs 4.安装对应cuda版本的tensorRT https://developer.nvidia.com/tensorrt-download 5.opencv安装 编译好 打开vs,配置环境 用vs打开tens…

ChatGPT/GPT4+AI绘图+论文高效写作结合到底有多强大?

2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

C语言之⽂件操作

一为啥需要文件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化的保…

数据分析为何要学统计学(7)——什么问题适合使用t检验?

t检验&#xff08;Students t test&#xff09;&#xff0c;用于通过小样本&#xff08;样本容量n < 30&#xff09;对总体均值水平进行无差异推断。 t检验要求样本不能超过两组&#xff0c;且每组样本总体服从正态分布&#xff08;对于三组以上样本的&#xff0c;要用方差…

无脑利用API实现文心一言AI对话功能?(附代码)

前言&#xff1a;在当今数字化的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术正在不断演进&#xff0c;为开发者提供了丰富的工具和资源。其中&#xff0c;API&#xff08;应用程序接口&#xff09;成为构建强大AI应用的关键组成部分之一。本文将介绍如何利用API来…

LAMP平台部署及应用

1、安装PHP软件包 1.1、准备工作 检查软件是否安装&#xff0c;避免冲突 [rootyang ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps 错误&#xff1a;未安装软件包 php 错误&#xff1a;未安装软件包 php-cli 错误&#xff1a;未安装软件包 php-ldap 错误…

Linux Conda 安装 Jupyter

在Linux服务器Conda环境上安装Jupyter过程中遇到了无数的报错&#xff0c;特此记录。 目录 步骤一&#xff1a;安装Anaconda3 步骤二&#xff1a;配置Conda源 步骤三&#xff1a;安装Jupyter 安装报错&#xff1a;simplejson.errors.JSONDecodeError 安装报错&#xff1a;…

电感耦合等离子刻蚀

引言 众所周知&#xff0c;化合物半导体中不同的原子比对材料的蚀刻特性有很大的影响。为了对蚀刻速率和表面形态的精确控制&#xff0c;通过使用低至25nm的薄器件阻挡层的&#xff0c;从而增加了制造的复杂性。本研究对比了三氯化硼与氯气的偏置功率&#xff0c;以及气体比对…