User Management
Manage system users and their permissions
Add New User
All Users
| Name | Phone | Role | Created | Actions | ||
|---|---|---|---|---|---|---|
| Current User |
No users found
Create your first user to get started
isAdmin()) { redirectTo('dashboard.php'); } $currentUser = $auth->getCurrentUser(); $db = Database::getInstance(); $error = ''; $success = ''; // Handle form submissions if ($_SERVER['REQUEST_METHOD'] === 'POST') { $action = $_POST['action'] ?? ''; switch ($action) { case 'create': $fullName = sanitizeInput($_POST['full_name']); $email = sanitizeInput($_POST['email']); $phone = sanitizeInput($_POST['phone']); $whatsapp = sanitizeInput($_POST['whatsapp']); $password = $_POST['password']; $confirmPassword = $_POST['confirm_password']; $role = sanitizeInput($_POST['role']); // Validate password match if ($password !== $confirmPassword) { $error = "Passwords do not match"; break; } // Validate email if (!validateEmail($email)) { $error = "Invalid email format"; break; } // Check if email exists $checkEmail = $db->query("SELECT id FROM users WHERE email = '" . $db->escape($email) . "'"); if ($checkEmail->num_rows > 0) { $error = "Email already exists"; break; } $hashedPassword = password_hash($password, PASSWORD_DEFAULT); $sql = "INSERT INTO users (full_name, email, phone, whatsapp, password, role) VALUES ('" . $db->escape($fullName) . "', '" . $db->escape($email) . "', '" . $db->escape($phone) . "', '" . $db->escape($whatsapp) . "', '" . $hashedPassword . "', '" . $db->escape($role) . "')"; if ($db->query($sql)) { $success = "User created successfully"; } else { $error = "Error creating user: " . $db->getLastError(); } break; case 'update': $userId = (int)$_POST['user_id']; $fullName = sanitizeInput($_POST['full_name']); $email = sanitizeInput($_POST['email']); $phone = sanitizeInput($_POST['phone']); $whatsapp = sanitizeInput($_POST['whatsapp']); $role = sanitizeInput($_POST['role']); // Validate email if (!validateEmail($email)) { $error = "Invalid email format"; break; } // Check if email exists for another user $checkEmail = $db->query("SELECT id FROM users WHERE email = '" . $db->escape($email) . "' AND id != $userId"); if ($checkEmail->num_rows > 0) { $error = "Email already exists"; break; } $sql = "UPDATE users SET full_name = '" . $db->escape($fullName) . "', email = '" . $db->escape($email) . "', phone = '" . $db->escape($phone) . "', whatsapp = '" . $db->escape($whatsapp) . "', role = '" . $db->escape($role) . "' WHERE id = $userId"; if ($db->query($sql)) { $success = "User updated successfully"; } else { $error = "Error updating user: " . $db->getLastError(); } break; case 'delete': $userId = (int)$_POST['user_id']; // Don't allow self-deletion if ($userId == $_SESSION['user_id']) { $error = "Cannot delete your own account"; break; } $sql = "DELETE FROM users WHERE id = $userId"; if ($db->query($sql)) { $success = "User deleted successfully"; } else { $error = "Error deleting user: " . $db->getLastError(); } break; } } // Get all users $users = $db->query("SELECT * FROM users ORDER BY created_at DESC"); // Get user statistics $totalUsers = $users->num_rows; $adminCount = $db->query("SELECT COUNT(*) as count FROM users WHERE role = 'admin'")->fetch_assoc()['count']; $pmCount = $db->query("SELECT COUNT(*) as count FROM users WHERE role = 'pm'")->fetch_assoc()['count']; $recentUsers = $db->query("SELECT COUNT(*) as count FROM users WHERE created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)")->fetch_assoc()['count']; ?>
Manage system users and their permissions
| Name | Phone | Role | Created | Actions | ||
|---|---|---|---|---|---|---|
| Current User |
Create your first user to get started