活字格用户权限管理从入门到精通

概述

用户权限管理是企业级应用的核心功能之一。活字格提供了从页面到行级的多层权限控制体系,本文详细介绍如何设计和实现一套灵活的权限管理方案。

一、权限体系架构

活字格的权限控制分为四个层级:

层级控制粒度实现方式
页面权限谁能访问哪些页面角色 → 页面授权
按钮权限谁能操作哪些按钮角色 → 单元格权限
数据权限谁能看到哪些数据行权限 + 查询条件
字段权限谁能编辑哪些字段字段级权限设置

二、角色设计最佳实践

建议采用RBAC(基于角色的访问控制)模型:

典型角色结构:
├── 超级管理员(全部权限)
├── 部门经理(本部门数据 + 审批)
├── 普通员工(个人数据 + 提交)
└── 查看者(只读访问)

三、页面权限配置

步骤:

  1. 进入「安全」→「页面权限」
  2. 选择需要控制的页面
  3. 勾选允许访问的角色
  4. 设置未授权时的跳转页面

四、行级数据权限实现

让用户只能看到自己部门的数据:

// 在表格查询条件中设置
=部门字段 = %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 接口(服务端命令)的权限控制
  • 测试越权操作(修改请求参数访问他人数据)

总结

权限管理的核心是最小权限原则——只给用户完成工作所需的最小权限。建议在项目初期就规划好权限体系,避免后期"打补丁"式的修改。

标签: