rbac
This commit is contained in:
@@ -54,3 +54,21 @@ CREATE TABLE IF NOT EXISTS `admin_role_permissions` (
|
||||
PRIMARY KEY (`role_id`, `permission_id`),
|
||||
KEY `idx_admin_role_permissions_perm` (`permission_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 种子数据:超级管理员角色与首个管理员账号。
|
||||
-- 与服务启动时 rbac.Provider.Seed 逻辑一致,供纯 SQL 初始化使用;
|
||||
-- 采用 ON DUPLICATE KEY UPDATE 保证可重复执行(重复执行仅刷新,不报错)。
|
||||
-- 密码 admin123 已按 bcrypt.DefaultCost 预哈希(与 internal/pkg/auth 一致)。
|
||||
-- ---------------------------------------------------------------------------
|
||||
INSERT INTO `admin_roles` (`id`, `code`, `name`, `description`, `status`, `created_at`, `updated_at`)
|
||||
VALUES (1, 'super_admin', '超级管理员', '系统内置超级管理员角色,拥有全部权限', 1, NOW(3), NOW(3))
|
||||
ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `description` = VALUES(`description`);
|
||||
|
||||
INSERT INTO `admin_users` (`id`, `username`, `password_hash`, `nickname`, `status`, `created_at`, `updated_at`)
|
||||
VALUES (1, 'admin', '$2a$10$hk/mJdUR86eyOrMuy7LGIOATNIbqZa3aw6hJAE/4f5MjP9pU5vjIe', '超级管理员', 1, NOW(3), NOW(3))
|
||||
ON DUPLICATE KEY UPDATE `password_hash` = VALUES(`password_hash`), `status` = VALUES(`status`), `nickname` = VALUES(`nickname`);
|
||||
|
||||
INSERT INTO `admin_user_roles` (`admin_id`, `role_id`)
|
||||
VALUES (1, 1)
|
||||
ON DUPLICATE KEY UPDATE `role_id` = VALUES(`role_id`);
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
-- 小程序管理 & 小程序用户建表脚本(mini_ / users 前缀,与后台 RBAC 物理隔离)。
|
||||
-- 执行顺序:先建表,再建索引(GORM 已含唯一/普通索引定义,此处显式列出便于审阅)。
|
||||
-- 表结构与 internal/model/miniapp.go、internal/model/user.go 保持一致。
|
||||
|
||||
-- 被后台纳管的小程序配置,AppID 全局唯一。
|
||||
-- DeletedAt 为 GORM 软删除字段,已建普通索引以支持软删除过滤。
|
||||
CREATE TABLE IF NOT EXISTS `mini_programs` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(128) NOT NULL,
|
||||
`description` VARCHAR(512) DEFAULT '',
|
||||
`app_id` VARCHAR(64) NOT NULL,
|
||||
`app_secret` VARCHAR(128) NOT NULL,
|
||||
`status` TINYINT NOT NULL DEFAULT 1,
|
||||
`ext` TEXT,
|
||||
`created_at` DATETIME(3) NULL,
|
||||
`updated_at` DATETIME(3) NULL,
|
||||
`deleted_at` DATETIME(3) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_mini_programs_app_id` (`app_id`),
|
||||
KEY `idx_mini_programs_deleted_at` (`deleted_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 小程序端用户。mini_id 关联被纳管小程序(mini_programs.id),
|
||||
-- 与 open_id 共同唯一标识一个用户;查询统一按 (mini_id, openid) 索引过滤。
|
||||
-- union_id 建普通索引便于跨小程序去重/聚合。
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`mini_id` BIGINT UNSIGNED NOT NULL,
|
||||
`openid` VARCHAR(64) NOT NULL,
|
||||
`union_id` VARCHAR(64) DEFAULT '',
|
||||
`nickname` VARCHAR(128) DEFAULT '',
|
||||
`avatar` VARCHAR(512) DEFAULT '',
|
||||
`status` TINYINT NOT NULL DEFAULT 1,
|
||||
`created_at` DATETIME(3) NULL,
|
||||
`updated_at` DATETIME(3) NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_users_mini_openid` (`mini_id`, `openid`),
|
||||
KEY `idx_users_union_id` (`union_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
Reference in New Issue
Block a user