6562208b13
- 新增 users 表(scrypt 口令哈希)与持久化层,启动兜底种子账号 - 登录改为后端用户表校验账号密码;JWT 带角色;保留无DB演示回退 - 新增系统管理员角色 + 用户管理页(增删改/改角色/启停/重置密码) - 用户管理端点按 系统管理员 角色强制校验(RBAC) - 各角色可建任意多个账号(多销售/多风控/多管理) - 更新登录页快速登录与首屏快照
28 lines
818 B
JavaScript
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;`);
|
|
};
|