文档中介绍了对于UI权限的管理和控制,但是在管理-角色中选择Screen
后右侧的组件树是不会显示动态添加的组件,而通过文件的四种标识符手动填写时,也并未对代码创建的组件生效,那么如果能够对动态生成的组件进行控制?或者如何可以获取到配置的UI权限?
你好,
UI 权限不支持动态创建的组件,因为在权限配置时是不实例化界面的,只是静态分析界面的定义,然后展示为树形结构。
那么有没有方法可以获取到UI权限配置的权限呢?这样我可以在生成组件的时候直接设置
UserSession 中的这个方法可以取到各种权限,包括组件权限
/**
* Get permissions by type
*/
public Map<String, Integer> getPermissionsByType(PermissionType type) {
PermissionsContainer permissionsContainer = PermissionsUtils.getPermissionsByType(joinedRole, type);
return Collections.unmodifiableMap(permissionsContainer.getExplicitPermissions());
}
UI权限的应用过程相对来说有点复杂,初学者从扩展框架角度去实现可能有点费事。 建议这样做:
- 如果界面元素大部分是动态生成,那就考虑自定义一个功能来配置权限,在动态创建的时候根据自己配置的权限来创建界面元素
- 如果界面元素不多,直接全部定义在界面上,通过 CUBA 的组件权限来控制哪些显示,哪些不显示
感谢您的回复