Files
RiskAgent/migrations/1730000023000_users.cjs
freedakgmail 6562208b13 多用户与角色:新增系统管理员 + 用户管理
- 新增 users 表(scrypt 口令哈希)与持久化层,启动兜底种子账号
- 登录改为后端用户表校验账号密码;JWT 带角色;保留无DB演示回退
- 新增系统管理员角色 + 用户管理页(增删改/改角色/启停/重置密码)
- 用户管理端点按 系统管理员 角色强制校验(RBAC)
- 各角色可建任意多个账号(多销售/多风控/多管理)
- 更新登录页快速登录与首屏快照
2026-06-13 17:35:52 +08:00

28 lines
818 B
JavaScript

/* eslint-disable */
/**
* 多用户与角色:用户账号表。
* - role: 商务/销售 | 风控 | 管理层 | 系统管理员
* - password_hash: scrypt 派生(格式 salt:hash),不存明文
* - 默认账号由应用启动时 ensureSeedUsers 兜底创建(首次为空时)
*/
exports.up = (pgm) => {
pgm.sql(`
CREATE TABLE IF NOT EXISTS users (
id TEXT PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
display_name TEXT,
password_hash TEXT NOT NULL,
role TEXT NOT NULL,
active BOOLEAN NOT NULL DEFAULT true,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_users_role ON users(role);
`);
};
exports.down = (pgm) => {
pgm.sql(`DROP TABLE IF EXISTS users;`);
};