prepare($check_sql)) { $check_stmt->bind_param("s", $username); $check_stmt->execute(); $check_stmt->store_result(); if ($check_stmt->num_rows > 0) { $error = "User with this email already exists."; } else { // Insert the new user $password_hash = $password ? password_hash($password, PASSWORD_DEFAULT) : null; $insert_sql = "INSERT INTO users (username, password_hash) VALUES (?, ?)"; if ($insert_stmt = $link->prepare($insert_sql)) { $insert_stmt->bind_param("ss", $username, $password_hash); if ($insert_stmt->execute()) { $success = "User '$username' added successfully!"; } else { $error = "Error adding user: " . $insert_stmt->error; } $insert_stmt->close(); } } $check_stmt->close(); } } } } // Handle user deletion (admin-only feature) if (isset($_GET['delete'])) { $user_id = $_GET['delete']; // Prevent the logged-in user from deleting themselves if ($user_id == $logged_in_user_id) { $error = "You cannot delete your own account."; } else { $sql = "DELETE FROM users WHERE id = ?"; if ($stmt = $link->prepare($sql)) { $stmt->bind_param("i", $user_id); if ($stmt->execute()) { $success = "User deleted successfully!"; } else { $error = "Error deleting user: " . $stmt->error; } $stmt->close(); } } } // Fetch all users from the database $sql = "SELECT id, username, password_hash FROM users"; $users = []; if ($result = $link->query($sql)) { while ($row = $result->fetch_assoc()) { $users[] = $row; } $result->free(); } ?>
Add a user to allow them to login via Keycloak SSO. Password is optional and only needed if you plan to support local login (legacy).
| ID | Email address | Auth Type | Action |
|---|---|---|---|
| Delete Current User |