# Chat-Room 管理员功能使用指南 ## 📋 概述 Chat-Room项目提供了完整的管理员功能系统,采用统一的CRUD命令架构,允许管理员对用户、群组和文件进行全面管理,包括新增、删除、修改、禁言、解禁等操作。 ## 🆕 新命令架构 ### 命令格式 ``` /[操作类型] -[对象类型] [参数] ``` **操作类型**: - `add` - 新增 - `del` - 删除 - `modify` - 修改 - `ban` - 禁言 - `free` - 解禁 **对象类型**: - `-u` - 用户 (user) - `-g` - 群组 (group) - `-f` - 文件 (file) - `-l` - 列表 (list,仅用于查看禁言列表) ## 🔑 管理员账户 ### 默认管理员账户 - **用户名**: `Admin` - **用户ID**: `0` (特殊ID) - **默认密码**: `admin123` > ⚠️ **安全提醒**: 首次使用时请立即修改管理员密码! ## 🛠️ 管理员命令 ### 新增命令 (`/add`) #### 新增用户 ```bash /add -u <用户名> <密码> ``` - **功能**: 创建新用户账户 - **示例**: `/add -u alice password123` - **交互式**: 如果不提供参数,会提示输入用户名和密码 - **自动操作**: 新用户会自动加入默认聊天组 ### 删除命令 (`/del`) #### 删除用户 ```bash /del -u <用户ID> ``` - **功能**: 删除指定用户及其所有相关数据 - **示例**: `/del -u 123` - **确认**: 需要用户确认操作 - **影响**: 删除用户的所有消息、文件、群组成员关系 #### 删除群组 ```bash /del -g <群组ID> ``` - **功能**: 删除指定群组及其所有相关数据 - **示例**: `/del -g 5` - **限制**: 不能删除`public`群组 - **确认**: 需要用户确认操作 #### 删除文件 ```bash /del -f <文件ID> ``` - **功能**: 删除指定文件(数据库记录和物理文件) - **示例**: `/del -f 789` - **确认**: 需要用户确认操作 - **不可恢复**: 文件删除后无法恢复 ### 修改命令 (`/modify`) #### 修改用户信息 ```bash /modify -u <用户ID> <字段> <新值> ``` - **功能**: 修改用户信息 - **支持字段**: - `username`: 修改用户名 - `password`: 重置密码 - **示例**: - `/modify -u 123 username 新用户名` - `/modify -u 123 password 新密码123` #### 修改群组信息 ```bash /modify -g <群组ID> <字段> <新值> ``` - **功能**: 修改群组信息 - **支持字段**: - `name`: 修改群组名称 - **示例**: `/modify -g 5 name 新群组名` ### 禁言命令 (`/ban`) #### 禁言用户 ```bash /ban -u <用户ID或用户名> ``` - **功能**: 禁言指定用户,使其无法发送消息 - **示例**: - `/ban -u 123` (按用户ID) - `/ban -u 张三` (按用户名) - **确认**: 需要用户确认操作 #### 禁言群组 ```bash /ban -g <群组ID或群组名> ``` - **功能**: 禁言整个群组,群组内所有用户无法发送消息 - **示例**: - `/ban -g 5` (按群组ID) - `/ban -g 测试群` (按群组名) - **限制**: 不能禁言`public`群组 - **确认**: 需要用户确认操作 ### 解禁命令 (`/free`) #### 解除用户禁言 ```bash /free -u <用户ID或用户名> ``` - **功能**: 解除用户禁言状态 - **示例**: - `/free -u 123` - `/free -u 张三` #### 解除群组禁言 ```bash /free -g <群组ID或群组名> ``` - **功能**: 解除群组禁言状态 - **示例**: - `/free -g 5` - `/free -g 测试群` #### 列出被禁言对象 ```bash /free -l ``` - **功能**: 显示所有被禁言的用户和群组列表 - **输出**: 包含用户ID/用户名和群组ID/群组名,格式化显示 ## 🔄 向后兼容性 ### 旧命令支持 为了保持向后兼容性,系统仍然支持旧的命令格式,但会显示废弃警告: #### 旧用户管理命令 ```bash /user -d <用户ID> # 等同于 /del -u <用户ID> /user -m <用户ID> <字段> <新值> # 等同于 /modify -u <用户ID> <字段> <新值> ``` #### 旧群组管理命令 ```bash /group -d <群组ID> # 等同于 /del -g <群组ID> /group -m <群组ID> <字段> <新值> # 等同于 /modify -g <群组ID> <字段> <新值> ``` ### 迁移建议 - **推荐使用新命令格式**:新的CRUD架构更加统一和直观 - **逐步迁移**:可以逐步将脚本和文档中的旧命令替换为新命令 - **培训用户**:向管理员用户介绍新的命令格式和优势 ## 🔒 权限控制 ### 管理员权限验证 - 只有用户ID为`0`的管理员用户才能执行管理员命令 - 非管理员用户尝试执行管理员命令会收到"权限不足"错误 - 所有管理员操作都会记录在系统日志中 ### 禁言机制 - **用户禁言**: 被禁言的用户无法在任何群组中发送消息 - **群组禁言**: 被禁言的群组中,所有用户(除管理员外)都无法发送消息 - **管理员免疫**: 管理员不受禁言限制,始终可以发送消息 ## 📢 操作通知 ### 广播通知 当管理员执行操作时,系统会向所有在线用户广播通知: - 用户被禁言/解禁 - 群组被禁言/解禁 - 用户被删除 - 群组被删除 ### 特殊处理 - 如果用户被删除,该用户的连接会自动断开 - 被禁言的用户会收到特殊提示 - 解除禁言时用户会收到恢复通知 ## 🛡️ 安全考虑 ### 操作确认 以下操作需要管理员确认: - 删除用户 (`/user -d`) - 删除群组 (`/group -d`) - 禁言用户 (`/ban -u`) - 禁言群组 (`/ban -g`) ### 保护机制 - 管理员不能删除自己 - 管理员不能禁言自己 - 不能删除或禁言`public`群组 - 所有操作都有详细的日志记录 ## 📝 使用示例 ### 场景1: 处理违规用户 ```bash # 1. 先禁言用户 /ban -u 违规用户名 # 2. 查看禁言列表确认 /free -l # 3. 如果需要,可以删除用户 /del -u 123 ``` ### 场景2: 管理群组 ```bash # 1. 禁言整个群组 /ban -g 问题群组 # 2. 修改群组名称 /modify -g 5 name 新群组名 # 3. 解除群组禁言 /free -g 5 ``` ### 场景3: 用户信息管理 ```bash # 1. 创建新用户 /add -u newuser password123 # 2. 重置用户密码 /modify -u 123 password 新密码123 # 3. 修改用户名 /modify -u 123 username 新用户名 ``` ### 场景4: 文件管理 ```bash # 1. 查看聊天组文件列表 /list -f # 2. 删除违规文件 /del -f 789 # 3. 确认文件已删除 /list -f ``` ## 🔧 故障排除 ### 常见问题 **Q: 提示"权限不足"** A: 确保使用管理员账户(用户名:Admin,ID:0)登录 **Q: 无法删除public群组** A: public群组是系统默认群组,不能删除或禁言 **Q: 命令执行失败** A: 检查命令格式是否正确,确保目标用户/群组存在 **Q: 被禁言用户仍能发送消息** A: 检查服务器日志,确认禁言操作是否成功执行 ### 日志查看 管理员操作会记录在服务器日志中,可以通过日志文件查看详细信息: - 操作类型和时间 - 操作者信息 - 目标对象信息 - 操作结果 ## 📚 相关文档 - [项目架构文档](architecture.md) - [服务器配置文档](../modules/server.md) - [客户端使用文档](../modules/client.md) - [数据库设计文档](../learning-v02/08-database-user-system/database-design.md) --- > 💡 **提示**: 管理员功能强大,请谨慎使用。建议在执行重要操作前先在测试环境中验证。