60 lines
1.8 KiB
SQL
60 lines
1.8 KiB
SQL
-- 社区管理员权限设置
|
|
-- 在 MySQL 中执行
|
|
|
|
-- 1. 创建管理员表(如果不存在)
|
|
CREATE TABLE IF NOT EXISTS community_admins (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id INT NOT NULL UNIQUE,
|
|
role ENUM('admin', 'moderator') DEFAULT 'moderator',
|
|
permissions JSON,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
INDEX idx_user_id (user_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
|
|
-- 2. 添加用户 ID=65 为管理员
|
|
INSERT INTO community_admins (user_id, role, permissions)
|
|
VALUES (65, 'admin', JSON_OBJECT(
|
|
'manage_channels', true,
|
|
'manage_messages', true,
|
|
'manage_users', true,
|
|
'manage_posts', true,
|
|
'pin_messages', true,
|
|
'delete_messages', true,
|
|
'announce', true,
|
|
'ban_users', true
|
|
))
|
|
ON DUPLICATE KEY UPDATE
|
|
role = 'admin',
|
|
permissions = JSON_OBJECT(
|
|
'manage_channels', true,
|
|
'manage_messages', true,
|
|
'manage_users', true,
|
|
'manage_posts', true,
|
|
'pin_messages', true,
|
|
'delete_messages', true,
|
|
'announce', true,
|
|
'ban_users', true
|
|
);
|
|
|
|
-- 3. 查看管理员列表
|
|
SELECT ca.*, u.username
|
|
FROM community_admins ca
|
|
LEFT JOIN users u ON ca.user_id = u.id;
|
|
|
|
-- 管理员权限说明:
|
|
-- admin (管理员): 拥有所有权限
|
|
-- - manage_channels: 创建/编辑/删除频道
|
|
-- - manage_messages: 编辑/删除任何消息
|
|
-- - manage_users: 踢出/禁言用户
|
|
-- - manage_posts: 编辑/删除任何帖子
|
|
-- - pin_messages: 置顶消息
|
|
-- - delete_messages: 删除消息
|
|
-- - announce: 在公告频道发布消息
|
|
-- - ban_users: 封禁用户
|
|
|
|
-- moderator (版主): 拥有部分权限
|
|
-- - pin_messages: 置顶消息
|
|
-- - delete_messages: 删除消息
|
|
-- - manage_posts: 管理帖子(锁定/置顶)
|