- 添加系统监控菜单模块 - 新增在线用户管理菜单权限配置 - 配置查看、踢下线、强制注销等权限 - 支持基于Sa-Token + Redis的无表设计 - 为管理员角色分配在线用户管理权限
93 lines
5.1 KiB
SQL
93 lines
5.1 KiB
SQL
/*
|
||
* 在线用户管理功能SQL脚本
|
||
*
|
||
* 功能说明:
|
||
* 1. 基于Sa-Token + Redis实现,无需专门的在线用户表
|
||
* 2. 仅需菜单权限配置,用户数据完全存储在Redis会话中
|
||
* 3. 支持实时查看在线用户、踢人下线、强制注销等功能
|
||
*
|
||
* 作者:Leocoder
|
||
* 创建时间:2025-09-27
|
||
*/
|
||
|
||
-- ----------------------------
|
||
-- 在线用户管理菜单权限配置
|
||
-- ----------------------------
|
||
|
||
-- 1. 系统监控菜单(如果不存在)
|
||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `en_name`, `parent_id`, `menu_type`, `path`, `name`, `component`, `icon`, `auth`, `menu_status`, `active_menu`, `is_hide`, `is_link`, `is_keep_alive`, `is_full`, `is_affix`, `is_spread`, `sorted`, `create_by`, `create_time`, `update_by`, `update_time`)
|
||
SELECT 2000, '系统监控', 'System Monitor', 0, '1', '/monitor', 'monitorPage', '', 'Monitor', 'monitor:auth', '0', NULL, '1', '', '0', '1', '1', '1', 3, 'system', NOW(), 'system', NOW()
|
||
WHERE NOT EXISTS (SELECT 1 FROM `sys_menu` WHERE `menu_id` = 2000);
|
||
|
||
-- 2. 在线用户菜单
|
||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `en_name`, `parent_id`, `menu_type`, `path`, `name`, `component`, `icon`, `auth`, `menu_status`, `active_menu`, `is_hide`, `is_link`, `is_keep_alive`, `is_full`, `is_affix`, `is_spread`, `sorted`, `create_by`, `create_time`, `update_by`, `update_time`)
|
||
VALUES (2001, '在线用户', 'Online Users', 2000, '2', '/monitor/online', 'onlineUsersPage', 'monitor/online/index', 'UserFilled', 'monitor:online:list', '0', NULL, '1', '', '1', '1', '1', '1', 1, 'system', NOW(), 'system', NOW());
|
||
|
||
-- 3. 在线用户-查看权限
|
||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `en_name`, `parent_id`, `menu_type`, `path`, `name`, `component`, `icon`, `auth`, `menu_status`, `active_menu`, `is_hide`, `is_link`, `is_keep_alive`, `is_full`, `is_affix`, `is_spread`, `sorted`, `create_by`, `create_time`, `update_by`, `update_time`)
|
||
VALUES (2002, '查看', 'View', 2001, '3', '', NULL, NULL, '', 'monitor:online:list', '0', NULL, '0', '', '0', '1', '1', '1', 1, 'system', NOW(), 'system', NOW());
|
||
|
||
-- 4. 在线用户-踢人下线权限
|
||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `en_name`, `parent_id`, `menu_type`, `path`, `name`, `component`, `icon`, `auth`, `menu_status`, `active_menu`, `is_hide`, `is_link`, `is_keep_alive`, `is_full`, `is_affix`, `is_spread`, `sorted`, `create_by`, `create_time`, `update_by`, `update_time`)
|
||
VALUES (2003, '踢人下线', 'Kick Out', 2001, '3', '', NULL, NULL, '', 'monitor:online:kickout', '0', NULL, '0', '', '0', '1', '1', '1', 2, 'system', NOW(), 'system', NOW());
|
||
|
||
-- 5. 在线用户-强制注销权限
|
||
INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `en_name`, `parent_id`, `menu_type`, `path`, `name`, `component`, `icon`, `auth`, `menu_status`, `active_menu`, `is_hide`, `is_link`, `is_keep_alive`, `is_full`, `is_affix`, `is_spread`, `sorted`, `create_by`, `create_time`, `update_by`, `update_time`)
|
||
VALUES (2004, '强制注销', 'Force Logout', 2001, '3', '', NULL, NULL, '', 'monitor:online:logout', '0', NULL, '0', '', '0', '1', '1', '1', 3, 'system', NOW(), 'system', NOW());
|
||
|
||
-- ----------------------------
|
||
-- 角色权限关联(管理员角色拥有在线用户管理权限)
|
||
-- ----------------------------
|
||
|
||
-- 给管理员角色分配在线用户菜单权限
|
||
-- 注意:这里假设管理员角色ID为1,请根据实际情况调整
|
||
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||
SELECT 1, 2000 WHERE NOT EXISTS (SELECT 1 FROM `sys_role_menu` WHERE `role_id` = 1 AND `menu_id` = 2000);
|
||
|
||
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||
SELECT 1, 2001 WHERE NOT EXISTS (SELECT 1 FROM `sys_role_menu` WHERE `role_id` = 1 AND `menu_id` = 2001);
|
||
|
||
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||
SELECT 1, 2002 WHERE NOT EXISTS (SELECT 1 FROM `sys_role_menu` WHERE `role_id` = 1 AND `menu_id` = 2002);
|
||
|
||
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||
SELECT 1, 2003 WHERE NOT EXISTS (SELECT 1 FROM `sys_role_menu` WHERE `role_id` = 1 AND `menu_id` = 2003);
|
||
|
||
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
|
||
SELECT 1, 2004 WHERE NOT EXISTS (SELECT 1 FROM `sys_role_menu` WHERE `role_id` = 1 AND `menu_id` = 2004);
|
||
|
||
-- ----------------------------
|
||
-- 执行说明
|
||
-- ----------------------------
|
||
|
||
/*
|
||
执行此脚本后,系统将具备以下功能:
|
||
|
||
1. 🎯 功能特性:
|
||
✅ 实时查看所有在线用户
|
||
✅ 显示用户详细信息(IP、设备、浏览器等)
|
||
✅ 支持按登录名、用户名、IP地址过滤
|
||
✅ 分页显示
|
||
✅ 踢人下线功能
|
||
✅ 强制注销功能
|
||
|
||
2. 🔐 权限控制:
|
||
✅ monitor:online:list - 查看在线用户列表
|
||
✅ monitor:online:kickout - 踢人下线权限
|
||
✅ monitor:online:logout - 强制注销权限
|
||
|
||
3. 🏗️ 实现原理:
|
||
✅ 基于Sa-Token会话管理
|
||
✅ 数据存储在Redis中
|
||
✅ 无需额外数据表
|
||
✅ 实时性能优秀
|
||
|
||
4. 📱 前端菜单路径:
|
||
✅ /monitor/online - 在线用户管理页面
|
||
✅ 位于系统监控模块下
|
||
|
||
注意事项:
|
||
- 确保系统已集成Sa-Token和Redis
|
||
- 确保角色权限表存在且管理员角色ID正确
|
||
- 执行前请备份相关表数据
|
||
*/ |