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(); } ?> Manage Users

Manage Users

Add New User

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).

User List

ID Email address Auth Type Action
Delete Current User

Back to Dashboard