get('domain', 'test.com');
$userRepo = new UserRepository();
$message = '';
$error = '';
// 处理创建用户
if (isset($_POST['create_user'])) {
$username = trim($_POST['username'] ?? '');
$password = $_POST['password'] ?? '';
$isAdmin = isset($_POST['is_admin']) ? 1 : 0;
$isActive = isset($_POST['is_active']) ? 1 : 0;
$usernameValidation = Validator::validateUsername($username);
if (!$usernameValidation['valid']) {
$error = implode('
', $usernameValidation['errors']);
} else {
if (!Validator::validateEmailDomain($username, $domain)) {
$error = "邮箱域名必须是 @".$domain;
} else {
$passwordValidation = Validator::validatePassword($password, 6);
if (!$passwordValidation['valid']) {
$error = implode('
', $passwordValidation['errors']);
} else {
try {
if ($userRepo->usernameExists($username)) {
$error = "用户名已存在";
} else {
$userRepo->create($username, $password, $isAdmin, $isActive);
$message = "用户创建成功";
}
} catch (Exception $e) {
$error = "创建失败: " . $e->getMessage();
}
}
}
}
}
// 处理更新用户
if (isset($_POST['update_user'])) {
$userId = (int)$_POST['user_id'];
$data = [];
if (!empty($_POST['new_password'])) {
$passwordValidation = Validator::validatePassword($_POST['new_password'], 6);
if (!$passwordValidation['valid']) {
$error = implode('
', $passwordValidation['errors']);
} else {
$data['password'] = $_POST['new_password'];
}
}
/**if (isset($_POST['is_admin'])) {
$data['is_admin'] = (int)$_POST['is_admin'];
}
if (isset($_POST['is_active'])) {
$data['is_active'] = (int)$_POST['is_active'];
}**/
// 管理员权限总是更新
$data['is_admin'] = isset($_POST['is_admin']) ? 1 : 0;
// 激活状态也是
$data['is_active'] = isset($_POST['is_active']) ? 1 : 0;
if (empty($error) && !empty($data)) {
if ($userRepo->update($userId, $data)) {
$message = "用户更新成功";
} else {
$error = "更新失败";
}
}
}
// 处理删除用户
if (isset($_GET['delete'])) {
$userId = (int)$_GET['delete'];
if ($userId != $_SESSION['user_id']) { // 不能删除自己
if ($userRepo->delete($userId)) {
$message = "用户删除成功";
} else {
$error = "删除失败";
}
} else {
$error = "不能删除自己的账号";
}
}
// 获取所有用户
$users = $userRepo->getAll();
?>