活字格用户权限管理从入门到精通
概述
用户权限管理是企业级应用的核心功能之一。活字格提供了从页面到行级的多层权限控制体系,本文详细介绍如何设计和实现一套灵活的权限管理方案。
一、权限体系架构
活字格的权限控制分为四个层级:
| 层级 | 控制粒度 | 实现方式 |
|---|---|---|
| 页面权限 | 谁能访问哪些页面 | 角色 → 页面授权 |
| 按钮权限 | 谁能操作哪些按钮 | 角色 → 单元格权限 |
| 数据权限 | 谁能看到哪些数据 | 行权限 + 查询条件 |
| 字段权限 | 谁能编辑哪些字段 | 字段级权限设置 |
二、角色设计最佳实践
建议采用RBAC(基于角色的访问控制)模型:
典型角色结构:
├── 超级管理员(全部权限)
├── 部门经理(本部门数据 + 审批)
├── 普通员工(个人数据 + 提交)
└── 查看者(只读访问)三、页面权限配置
步骤:
- 进入「安全」→「页面权限」
- 选择需要控制的页面
- 勾选允许访问的角色
- 设置未授权时的跳转页面
四、行级数据权限实现
让用户只能看到自己部门的数据:
// 在表格查询条件中设置
=部门字段 = %CurrentUser.部门%
// 或者通过服务端命令动态设置查询条件
var dept = Forguncy.UserManager.getCurrentUser().部门;
listview.setFilter("部门 = '" + dept + "'");五、按钮级权限控制
通过 JavaScript 动态控制按钮可见性:
// 页面加载时判断用户角色
var currentUser = Forguncy.UserManager.getCurrentUser();
var role = currentUser.角色;
// 根据角色显示/隐藏按钮
if (role !== "管理员") {
Forguncy.Page.getCell("删除按钮").setVisible(false);
Forguncy.Page.getCell("审批按钮").setVisible(false);
}六、字段级权限(敏感数据保护)
在活字格设计器中:
- 选中数据表的敏感字段(如薪资、身份证号)
- 右键 → 字段权限 → 设置允许查看/编辑的角色
- 无权限用户看到的是
****掩码
七、动态权限的高级方案
当内置权限不够灵活时,可自定义权限表:
-- 自定义权限表结构
CREATE TABLE 权限配置 (
ID INT PRIMARY KEY,
角色名称 NVARCHAR(50),
页面名称 NVARCHAR(50),
操作类型 NVARCHAR(20), -- 查看/编辑/删除
是否授权 BIT
);
-- 通过服务端命令查询用户权限
SELECT 操作类型 FROM 权限配置
WHERE 角色名称 = @用户角色 AND 页面名称 = @当前页面八、权限测试要点
- 使用不同角色账号逐一验证
- 测试 URL 直接访问未授权页面的表现
- 验证 API 接口(服务端命令)的权限控制
- 测试越权操作(修改请求参数访问他人数据)
总结
权限管理的核心是最小权限原则——只给用户完成工作所需的最小权限。建议在项目初期就规划好权限体系,避免后期"打补丁"式的修改。
暂无评论
快来发表第一条评论吧!