怎么控制代码生成的组件的权限

image
文档中介绍了对于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 的组件权限来控制哪些显示,哪些不显示

感谢您的回复 :grinning: