1.9 KiB
1.9 KiB
6.1 用户管理
:::tip 概述 用户是组织权限体系的核心表(gin_user,租户级)。除标准 CRUD 外,承载角色分配、密码重置、导入导出与(租户场景的)开户逻辑,并挂接数据权限过滤。 :::
功能清单
| 接口 | 说明 |
|---|---|
| Page / List / Detail | 标准查询(分页支持关键字/部门/状态过滤) |
| Add | 新增(租户场景经 addWithTenant 归属租户) |
| Update | 修改(全量表单语义) |
| Status | 启停单列更新 |
| ResetPwd | 重置密码(手写逻辑,管理员操作留痕) |
| Delete / BatchDelete | 软删除 |
| Import / Export | Excel 导入导出 |
| Document | 用户打印信息(打印视图数据) |
特色机制
- 角色随表单写入:Add/Update 请求带
roles []int64(json 名roles),事务内 rewriteUserRoles 先清后写 gin_user_role——没有独立的"分配角色"接口;service 层 AssignRoles 是事务复用的内部方法 - 数据权限挂接:userSpec 声明
DataScope: ApplyDataScope("dept_id")(user.go:77 注释:角色数据权限(Page/List/导出生效))——本模块是数据权限的典型示范(行级部门过滤) - 租户级表:写侧自动补 tenant_id,读侧自动隔离
- 密码安全:重置与新增均走 crypto 哈希(外部 salt + bcrypt),永不落明文
- 导入导出:标准 Excel 契约(列头、逐行校验、结果汇总)
数据要点
- 用户名在租户内唯一(UniqueFields 预检 + 数据库 uk 兜底)
- 部门列 dept_id 与 gin_dept 关联,数据权限与组织展示都依赖它
- 状态非 1 视为禁用(登录校验同口径)
管理界面
system/user:列表 + 搜索 + 新增/编辑弹窗 + 分配角色 + 重置密码 + 导入导出。
相关
- 机制:5.4 权限管理、5.10 数据权限
- 开发:第 3 章 模块开发实战