37650-vm/db/setup_users.php
Flatlogic Bot f054121ef2 26
2026-01-21 06:58:38 +00:00

47 lines
1.5 KiB
PHP

<?php
require_once 'config.php';
try {
$pdo = db();
$sql = "
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL UNIQUE,
email VARCHAR(255) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
role ENUM('user', 'admin') NOT NULL DEFAULT 'user',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
";
$pdo->exec($sql);
echo "Table 'users' created successfully." . PHP_EOL;
// Add a default admin user if one doesn't exist
$stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE email = :email");
$stmt->execute(['email' => 'admin@example.com']);
if ($stmt->fetchColumn() == 0) {
$username = 'admin';
$email = 'admin@example.com';
$password = 'password'; // In a real app, use a stronger password and handle this securely
$password_hash = password_hash($password, PASSWORD_DEFAULT);
$role = 'admin';
$insert_sql = "
INSERT INTO users (username, email, password_hash, role)
VALUES (:username, :email, :password_hash, :role);
";
$insert_stmt = $pdo->prepare($insert_sql);
$insert_stmt->execute([
':username' => $username,
':email' => $email,
':password_hash' => $password_hash,
':role' => $role
]);
echo "Default admin user created (admin@example.com / password)." . PHP_EOL;
}
} catch (PDOException $e) {
die("DB ERROR: " . $e->getMessage());
}