/home/techb158/workloadmatch.com/Admin
Edit: /home/techb158/workloadmatch.com/Admin/masters.php (21705B)
verifyRequest();
if (isset($_POST['action'])) {
$action = $_POST['action'];
if ($action === 'add_master') {
$firstName = trim($_POST['first_name']);
$lastName = trim($_POST['last_name']);
$email = trim($_POST['email']);
$phone = trim($_POST['phone']);
$password = trim($_POST['password']);
$address = trim($_POST['address']);
$roleId = intval($_POST['role_id']);
$masterId = uniqid('MST-');
$salt = bin2hex(openssl_random_pseudo_bytes(32));
$hashedPassword = hash('sha512', $password . $salt);
$adminId = $_SESSION['user_id'];
$stmt = $mysqli->prepare("INSERT INTO master_profile (Master_ID, Admin_ID, First_Name, Last_Name, Email, Phone, Password, salt, Address, role_id, User_Access, Reg_Date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, NOW())");
if ($stmt) {
$stmt->bind_param('sssssssssi', $masterId, $adminId, $firstName, $lastName, $email, $phone, $hashedPassword, $salt, $address, $roleId);
if ($stmt->execute()) {
set_flash_msg('Master added successfully.', 'success');
log_activity($mysqli, 'Created Master', 'Master', $masterId, $firstName . ' ' . $lastName);
} else {
set_flash_msg('Failed to add master: ' . $stmt->error, 'error');
}
$stmt->close();
} else {
set_flash_msg('Database error.', 'error');
}
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
if ($action === 'edit_master') {
$masterId = $_POST['master_id'];
$firstName = trim($_POST['first_name']);
$lastName = trim($_POST['last_name']);
$email = trim($_POST['email']);
$phone = trim($_POST['phone']);
$address = trim($_POST['address']);
$roleId = intval($_POST['role_id']);
$stmt = $mysqli->prepare("UPDATE master_profile SET First_Name = ?, Last_Name = ?, Email = ?, Phone = ?, Address = ?, role_id = ? WHERE Master_ID = ?");
if ($stmt) {
$stmt->bind_param('sssssis', $firstName, $lastName, $email, $phone, $address, $roleId, $masterId);
if ($stmt->execute()) {
set_flash_msg('Master updated successfully.', 'success');
log_activity($mysqli, 'Updated Master', 'Master', $masterId, $firstName . ' ' . $lastName);
} else {
set_flash_msg('Failed to update master: ' . $stmt->error, 'error');
}
$stmt->close();
}
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
if ($action === 'toggle_master') {
$masterId = $_POST['master_id'];
$newStatus = intval($_POST['status']);
$stmt = $mysqli->prepare("SELECT First_Name, Last_Name FROM master_profile WHERE Master_ID = ?");
$name = '';
if ($stmt) {
$stmt->bind_param('s', $masterId);
$stmt->execute();
$stmt->bind_result($fn, $ln);
$stmt->fetch();
$name = $fn . ' ' . $ln;
$stmt->close();
}
if (toggle_user_status($mysqli, 'master_profile', 'Master_ID', $masterId, $newStatus)) {
set_flash_msg('Master status updated.', 'success');
log_activity($mysqli, $newStatus ? 'Enabled Master' : 'Disabled Master', 'Master', $masterId, $name);
} else {
set_flash_msg('Failed to update status.', 'error');
}
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
if ($action === 'delete_master') {
$masterId = $_POST['master_id'];
$stmt = $mysqli->prepare("SELECT First_Name, Last_Name FROM master_profile WHERE Master_ID = ?");
$name = '';
if ($stmt) {
$stmt->bind_param('s', $masterId);
$stmt->execute();
$stmt->bind_result($fn, $ln);
$stmt->fetch();
$name = $fn . ' ' . $ln;
$stmt->close();
}
$stmt = $mysqli->prepare("UPDATE master_profile SET is_archived = 1 WHERE Master_ID = ?");
if ($stmt) {
$stmt->bind_param('s', $masterId);
if ($stmt->execute()) {
set_flash_msg('Master archived successfully.', 'success');
log_activity($mysqli, 'Archived Master', 'Master', $masterId, $name);
} else {
set_flash_msg('Failed to archive master.', 'error');
}
$stmt->close();
}
header('Location: ' . $_SERVER['PHP_SELF']);
exit;
}
}
}
// Fetch counts
$totalStmt = $mysqli->query("SELECT COUNT(*) AS cnt FROM master_profile WHERE is_archived IS NULL OR is_archived = 0");
$totalMasters = $totalStmt ? $totalStmt->fetch_assoc()['cnt'] : 0;
$activeStmt = $mysqli->query("SELECT COUNT(*) AS cnt FROM master_profile WHERE User_Access = 1 AND (is_archived IS NULL OR is_archived = 0)");
$activeMasters = $activeStmt ? $activeStmt->fetch_assoc()['cnt'] : 0;
$disabledStmt = $mysqli->query("SELECT COUNT(*) AS cnt FROM master_profile WHERE User_Access = 0 AND (is_archived IS NULL OR is_archived = 0)");
$disabledMasters = $disabledStmt ? $disabledStmt->fetch_assoc()['cnt'] : 0;
// Fetch roles for dropdown
$roles = [];
$roleResult = $mysqli->query("SELECT role_id, role_name FROM roles ORDER BY role_name");
if ($roleResult) {
while ($r = $roleResult->fetch_assoc()) {
$roles[] = $r;
}
}
?>
Course Management System | Masters
| Master ID |
Name |
Email |
Phone |
Managers Count |
Status |
Role |
Actions |
query($query);
while ($row = $result->fetch_assoc()):
$statusLabel = $row['User_Access'] == 1 ? 'Active' : 'Disabled';
$roleName = get_role_name($mysqli, $row['role_id']);
$fullName = htmlspecialchars($row['First_Name'] . ' ' . $row['Last_Name']);
?>
|
|
|
|
|
|
|
|