/home/techb158/workloadmatch.com/Admin
NameSizeModeActions
dashboard.php105150644editdlrm
logs.php100170644editdlrm
main-header-inc.php11950644editdlrm
main-header.php75270644editdlrm
managers.php215240644editdlrm
masters.php217050644editdlrm
pages.php158220644editdlrm
pages_ajax.php6300644editdlrm
reports.php91930644editdlrm
roles.php158330644editdlrm
roles_ajax.php10070644editdlrm
settings.php45750644editdlrm
teachers.php278500644editdlrm
teacher_absence.php3050644editdlrm
Edit: /home/techb158/workloadmatch.com/Admin/roles.php (15833B)
prepare("INSERT INTO roles (role_name, description, is_system, status, created_at) VALUES (?, ?, 0, 1, NOW())"); $stmt->bind_param('ss', $name, $desc); if ($stmt->execute()) { $roleId = $stmt->insert_id; set_flash_msg("Role '$name' created successfully.", 'success'); log_activity($mysqli, 'create', 'role', $roleId, $name); } else { set_flash_msg('Error creating role: ' . $stmt->error, 'danger'); } $stmt->close(); header('Location: roles.php'); exit(); } if (isset($_POST['edit_role'])) { $roleId = (int)$_POST['role_id']; $name = trim($_POST['role_name']); $desc = trim($_POST['description'] ?? ''); $stmt = $mysqli->prepare("UPDATE roles SET role_name=?, description=? WHERE role_id=?"); $stmt->bind_param('ssi', $name, $desc, $roleId); if ($stmt->execute()) { set_flash_msg("Role '$name' updated.", 'success'); log_activity($mysqli, 'edit', 'role', $roleId, $name); } else { set_flash_msg('Error updating role.', 'danger'); } $stmt->close(); header('Location: roles.php'); exit(); } if (isset($_GET['toggle']) && isset($_GET['rid'])) { $rid = (int)$_GET['rid']; $stmt = $mysqli->prepare("SELECT role_name, status FROM roles WHERE role_id=?"); $stmt->bind_param('i', $rid); $stmt->execute(); $stmt->bind_result($rname, $rstatus); $stmt->fetch(); $stmt->close(); if ($rname !== null) { $newStatus = $rstatus == 1 ? 0 : 1; $upd = $mysqli->prepare("UPDATE roles SET status=? WHERE role_id=?"); $upd->bind_param('ii', $newStatus, $rid); $upd->execute(); $upd->close(); $action = $newStatus == 1 ? 'enable' : 'disable'; set_flash_msg("Role '$rname' " . ($newStatus == 1 ? 'enabled' : 'disabled') . '.', 'success'); log_activity($mysqli, $action, 'role', $rid, $rname); } header('Location: roles.php'); exit(); } if (isset($_GET['delete']) && isset($_GET['rid'])) { $rid = (int)$_GET['rid']; $stmt = $mysqli->prepare("SELECT role_name, is_system FROM roles WHERE role_id=?"); $stmt->bind_param('i', $rid); $stmt->execute(); $stmt->bind_result($rname, $isSystem); $stmt->fetch(); $stmt->close(); if ($isSystem == 1) { set_flash_msg("System role '$rname' cannot be deleted.", 'danger'); } elseif ($rname !== null) { $mysqli->query("DELETE FROM role_permissions WHERE role_id = $rid"); $del = $mysqli->prepare("DELETE FROM roles WHERE role_id=?"); $del->bind_param('i', $rid); if ($del->execute()) { set_flash_msg("Role '$rname' deleted.", 'success'); log_activity($mysqli, 'delete', 'role', $rid, $rname); } $del->close(); } header('Location: roles.php'); exit(); } if (isset($_POST['save_permissions'])) { $roleId = (int)$_POST['role_id']; $roleName = ''; $rn = $mysqli->prepare("SELECT role_name FROM roles WHERE role_id=?"); $rn->bind_param('i', $roleId); $rn->execute(); $rn->bind_result($roleName); $rn->fetch(); $rn->close(); $mysqli->query("DELETE FROM role_permissions WHERE role_id = $roleId"); $ins = $mysqli->prepare("INSERT INTO role_permissions (role_id, module, can_view, can_create, can_edit, can_delete, can_enable, can_disable) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"); foreach ($modules as $mod) { $v = isset($_POST["perm_${mod}_view"]) ? 1 : 0; $c = isset($_POST["perm_${mod}_create"]) ? 1 : 0; $e = isset($_POST["perm_${mod}_edit"]) ? 1 : 0; $d = isset($_POST["perm_${mod}_delete"]) ? 1 : 0; $en = isset($_POST["perm_${mod}_enable"]) ? 1 : 0; $di = isset($_POST["perm_${mod}_disable"]) ? 1 : 0; $ins->bind_param('isiiiii', $roleId, $mod, $v, $c, $e, $d, $en, $di); $ins->execute(); } $ins->close(); set_flash_msg("Permissions for '$roleName' saved.", 'success'); log_activity($mysqli, 'update_permissions', 'role', $roleId, $roleName); header('Location: roles.php'); exit(); } $totalRoles = $mysqli->query("SELECT COUNT(*) FROM roles")->fetch_row()[0]; $activeRoles = $mysqli->query("SELECT COUNT(*) FROM roles WHERE status = 1")->fetch_row()[0]; ?> Admin | Roles & Permissions

Roles & Permissions Manage user roles and permissions

Total Roles

Active Roles

All Roles

query("SELECT role_id, role_name, description, is_system, status, created_at FROM roles ORDER BY role_name"); while ($r = $roles->fetch_assoc()) { $rid = $r['role_id']; $rname = htmlspecialchars($r['role_name']); $desc = htmlspecialchars($r['description'] ?? ''); $sys = $r['is_system'] == 1 ? 'Yes' : 'No'; $status = $r['status'] == 1 ? 'Active' : 'Disabled'; $created = htmlspecialchars(date('Y-m-d', strtotime($r['created_at']))); $toggleLabel = $r['status'] == 1 ? 'Disable' : 'Enable'; $toggleClass = $r['status'] == 1 ? 'btn-warning' : 'btn-success'; $toggleIcon = $r['status'] == 1 ? 'fa-ban' : 'fa-check'; $canDelete = $r['is_system'] == 1 ? 'disabled' : ''; echo ""; } ?>
IDRole NameDescriptionSystem RoleStatusCreatedActions
$rid $rname $desc $sys $status $created