• 首页
  • 产品中心
    • 数式Oinone四大产品

      低代码开发平台无代码开发平台集成开发平台AI大模型开发
    • 数式Oinone体系能力

      用户与组织权限管理文件管理消息中心国际化业务审计
    • 数式Oinone核心产品特性

      低无一体面向软件公司场景无限制应用级扩容可分可合
  • 服务中心
    • 客户服务

      预约演示方案咨询私有部署找人定制
    • 开发者

      问答下载
    • Oinone学院

      社区学习

    《精讲面向软件公司的低代码平台——以Oinone为例》

  • 合作伙伴
    渠道申请伙伴名录专家库
  • 关于数式
0571-88757863

章节 4:安全简介(A Brief Introduction To Security)


在上一章中,我们创建了第一个用于存储业务数据的表。在像 Oinone 这样的业务应用程序中,首先要考虑的问题之一是谁(1)可以访问这些数据。Oinone 提供了一种安全机制,以允许特定用户组访问数据。

关于安全的主题在 “限制数据访问” 中有更详细的介绍。本章旨在涵盖我们新模块所需的最基本安全知识。

一、菜单入口

目标:在本节结束时,项目信息的增、删、改、查的基础功能有对应的菜单入口

为了方便介绍安全控制中资源权限和数据权限,先把项目信息的管理入口,通过菜单配置先放出来。

package pro.shushi.oinone.trutorials.expenses.core.init;

import pro.shushi.oinone.trutorials.expenses.api.model.ProjectInfo;
import pro.shushi.pamirs.boot.base.constants.ViewActionConstants;
import pro.shushi.pamirs.boot.base.ux.annotation.action.UxRoute;
import pro.shushi.pamirs.boot.base.ux.annotation.navigator.UxMenu;
import pro.shushi.pamirs.boot.base.ux.annotation.navigator.UxMenus;

@UxMenus public class ExpensesMenus implements ViewActionConstants {
    @UxMenu("基础数据")
    class ExpensesBaseMenu {
        @UxMenu("测试菜单") @UxRoute(TestModel.MODEL_MODEL) class TestModelMenu { }
    }
}

这个定义足以让 Oinone 生成一个名为“测试菜单”的菜单入口。按照惯例,用@UxMenus声明ExpensesMenus为菜单初始化入口,初始化类ExpensesMenus都位于模块的配置包扫描路径中如: pro.shushi.oinone.trutorials.expenses.core.init。那么通过ExpensesMenus初始化的菜单都挂在expenses这个模块上。

提示:菜单初始化

  1. @UxMenu来申明菜单,值为菜单名称。菜单可以嵌套,如“测试菜单”在“基础数据”菜单下作为子菜单。
  2. 通过@UxRoute,值为模型的编码,表明该菜单会跳转到哪个模型的视图页面。会自动生成一个ViewAction记录作为菜单与视图之间的桥梁
  3. 如果没有指定特定视图,则会跳转到该模型的表格视图,相同类型的视图按优先级选择,数值越低优先级越高,其中系统默认生成的视图优先级数值统一为88。
  4. 为模型配置了菜单入口,或者其他任何可以跳转到该模型的入口,Oinone系统会为该模型生成对应的默认视图。

练习(Exercise)

为项目信息模型初始化菜单:根据TestModel示例,为ProjectInfo模型创建菜单“项目管理”,也挂在“基础数据”菜单下作为子菜单。

二、用户与角色

角色可在「管理中心-角色与权限-角色管理」中进行管理与维护。新增一个“test”角色用于测试

用户可在「管理中心-用户」中进行管理与维护。新增一个用户“test”并绑定“test”角色用于测试

二、访问权限配置

目标:在本节结束时,test用户登陆后可以访问「费用管理-基础数据-项目管理」,并且操作数据的增删改查。

我们可以为「费用管理-基础数据-项目管理」设置权限组并绑定角色。在「管理中心-角色与权限-系统权限」中进行管理与维护。

(一)资源权限

资源权限包括:应用权限、菜单权限、操作权限等,需要挨个设置。

举例:为“test”角色赋予“费用管理”应用访问权限示例:

在系统权限页面选中费用管理,并通过点击“添加角色”按钮,在弹出框中选择“test”角色,确定保存

举例:为“test”角色赋予费用管理应用下“测试菜单”的访问权限示例:

1、在系统权限页面选中「费用管理-基础数据-测试菜单」,并通过点击“添加权限组”按钮,在弹出框中配置权限组权限,确定保存

2、为test权限组绑定角色,这里我们绑定角色“test”。

3、test用户登陆,只能访问“费用管理”和其下的“测试菜单”

提示

1、配置权限时使用admin账户登陆

2、test登陆时的密码为创建用户时表单填入的初始化密码,在示例中为:test1234@

练习(Exercise)

项目管理菜单资源权限设置:根据菜单“测试菜单”示例,为“test”角色赋予「费用管理-基础数据-项目管理」菜单对应访问权限与操作权限。

(二)数据权限

Oinone对数据访问权限控制可以分别设置:行级与列级。

目标:在本节结束时,test用户登陆后可以访问「费用管理-基础数据-项目管理」,但只能访问名称中包含“test”字符的数据

举例:为“test”角色赋予费用管理应用下“测试菜单”的访问权限示例:

1、在系统权限页面选中「费用管理-基础数据-测试菜单」,并通过点击“test权限组”对应的“编辑”按钮,在弹出框中配置权限组的字段权限与数据权限,确定保存

2、test重新登陆,再次访问的“测试菜单”,列表中“创建时间”和“更改时间”字段为不可见。新增数据name如果不包含“test”字符串则数据行不可见

提示:字段权限配置

在配置字段权限时,一定要取消全部字段“可见”、“可编辑”的选项,否则字段权限不生效

提示:字段权限与数据权限

企业版包含字段权限与数据权限功能,社区版无此功能。

练习(Exercise)

项目管理的数据权限设置:根据菜单“测试菜单”示例,为“test”角色赋予「费用管理-基础数据-项目管理」菜单对应模型项目信息的数据行权限,即只能查看“项目名称”字段值包含“test”字符串的数据。

现在终于可以与用户界面进行交互了!

编辑此页
最近更新:2026/1/15 04:02
上一页
章节 3:模型与基础字段(Models And Basic Fields)
下一页
章节 5:界面实操(Finally, Some UI To Play With)
默认页脚
Copyright © 2026 Mr.Hope