prepare('SELECT id, role, is_admin FROM ' . tn('users') . ' WHERE id = ? AND role IN (\'admin\',\'cs\')')->execute([$id])->fetch(); if (!$row) { $err = '账号不存在。'; } else { $newIsAdmin = ($role === 'admin') ? 1 : 0; $db->prepare('UPDATE ' . tn('users') . ' SET role = ?, is_admin = ? WHERE id = ?') ->execute([$role, $newIsAdmin, $id]); $msg = '已将账号 #' . $id . ' 角色改为「' . ($role === 'admin' ? '管理员' : '客服') . '」。'; } } } // ─── 删除 ── if (isset($_POST['delete']) && $isAdmin) { verifyCsrf(); $id = (int) ($_POST['delete'] ?? 0); if ($id === (int) $me['id']) { $err = '不能删除当前登录的账号。'; } elseif ($id === 1) { $err = '不能删除终极管理员(ID=1),该账号受系统保护。'; } else { $row = $db->prepare('SELECT id, role, is_admin FROM ' . tn('users') . ' WHERE id = ? AND role IN (\'admin\',\'cs\')')->execute([$id])->fetch(); if (!$row) { $err = '账号不存在。'; } elseif ((int) $row['is_admin'] === 1) { // 管理员:确保至少保留一名管理员(含终极管理员) $cnt = $db->query('SELECT COUNT(*) FROM ' . tn('users') . ' WHERE role = \'admin\' AND status = 1')->fetchColumn(); if ((int) $cnt <= 1) { $err = '至少要保留一名管理员,不能继续删除。'; } else { $db->prepare('DELETE FROM ' . tn('users') . ' WHERE id = ?')->execute([$id]); $msg = '管理员已删除。'; } } else { $db->prepare('DELETE FROM ' . tn('users') . ' WHERE id = ?')->execute([$id]); $msg = '客服已删除。'; } } } // ─── 添加 ── if (isset($_POST['add']) && $isAdmin) { verifyCsrf(); $u = trim($_POST['username'] ?? ''); $em = trim($_POST['email'] ?? ''); $pw = $_POST['password'] ?? ''; $role = trim($_POST['role'] ?? 'admin'); $role = in_array($role, ['admin', 'cs'], true) ? $role : 'admin'; if (strlen($u) < 3) $err = '账号至少 3 个字符。'; elseif (!filter_var($em, FILTER_VALIDATE_EMAIL)) $err = '请填写有效的邮箱。'; elseif (strlen($pw) < 6) $err = '密码至少 6 位。'; else { $chk = $db->prepare('SELECT id FROM ' . tn('users') . ' WHERE username = ?'); $chk->execute([$u]); if ($chk->fetch()) { $err = '该用户名已存在。'; } else { $hash = password_hash($pw, PASSWORD_DEFAULT); $code = genInviteCode(); $isAdminFlag = $role === 'admin' ? 1 : 0; $db->prepare('INSERT INTO ' . tn('users') . ' (username,password,email,invite_code,is_admin,role,created_at) VALUES (?,?,?,?,?,?,NOW())') ->execute([$u, $hash, $em, $code, $isAdminFlag, $role]); $msg = ($role === 'admin' ? '管理员' : '客服') . '已添加。'; } } } $list = $db->query('SELECT id, username, email, status, role, created_at FROM ' . tn('users') . ' WHERE role IN (\'admin\',\'cs\') ORDER BY role DESC, id ASC')->fetchAll(); adminHeader('管理员', 'admins'); ?>

管理员与客服

添加账号(管理员 / 客服)

管理员拥有全部后台权限;客服可查看所有页面但仅能处理工单相关操作。

客服账号无法添加新管理员,如需操作请联系管理员。

账号列表(共 名)

暂无账号。

>
ID账号邮箱角色状态注册时间操作
超级' : '' ?> 我' : '' ?>
管理员 客服 (受保护)
正常' : '封禁' ?> 当前账号 受保护

终极管理员(ID=1)受系统保护,不可被删除或降级。其他管理员可由同级管理员删除或改为客服。