exec("
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
role VARCHAR(50) NOT NULL,
status VARCHAR(50) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
");
// Check if table is empty and seed if necessary
$stmt = $pdo->query("SELECT COUNT(*) FROM users");
if ($stmt->fetchColumn() == 0) {
$seed_users = [
['John Doe', 'john.doe@example.com', 'Customer Support', 'Active'],
['Jane Smith', 'jane.smith@example.com', 'Trust & Safety', 'Active'],
['Peter Jones', 'peter.jones@example.com', 'Financial Ops', 'Suspended'],
['Admin User', 'admin@example.com', 'Platform Admin', 'Active'],
['CEO User', 'ceo@example.com', 'CEO', 'Active']
];
$insert_stmt = $pdo->prepare("INSERT INTO users (name, email, role, status) VALUES (?, ?, ?, ?)");
foreach ($seed_users as $user) {
$insert_stmt->execute($user);
}
}
// Fetch all users
$users = $pdo->query("SELECT id, name, email, role, status, DATE_FORMAT(created_at, '%b %d, %Y') as joined_date FROM users ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
// For a real app, you'd want to log this error and show a user-friendly message.
die("Database error: " . $e->getMessage());
}
$page_title = "Admin Dashboard - Users";
$project_name = getenv('PROJECT_NAME') ?: 'GO7EIGHT';
function getStatusClass($status) {
switch (strtolower($status)) {
case 'active':
return 'bg-success';
case 'suspended':
return 'bg-danger';
case 'pending':
return 'bg-warning';
default:
return 'bg-secondary';
}
}
?>
= htmlspecialchars($page_title) ?>
| # |
Name |
Email |
Role |
Status |
Joined |
| No users found. |
| = htmlspecialchars($user['id']) ?> |
= htmlspecialchars($user['name']) ?> |
= htmlspecialchars($user['email']) ?> |
= htmlspecialchars($user['role']) ?> |
= htmlspecialchars($user['status']) ?>
|
= htmlspecialchars($user['joined_date']) ?> |