diff --git a/admin_teachers.php b/admin_teachers.php index 3f22fba..1e2c26c 100644 --- a/admin_teachers.php +++ b/admin_teachers.php @@ -9,6 +9,20 @@ $school_id = $_SESSION['school_id']; $pdo = db(); +// Handle permission toggle +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['toggle_permission_id'])) { + try { + $teacher_id = $_POST['toggle_permission_id']; + $new_status = $_POST['new_status']; + $stmt = $pdo->prepare("UPDATE teachers SET can_edit_workload = ? WHERE id = ? AND school_id = ?"); + $stmt->execute([$new_status, $teacher_id, $school_id]); + $message = "Permission updated successfully."; + } catch (PDOException $e) { + $error = "Error updating permission: " . $e->getMessage(); + } +} + + // Handle Delete request if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_id'])) { try { @@ -187,7 +201,7 @@ try {
-
+

Manage Teachers

@@ -213,7 +227,7 @@ try {
- > + > Leave blank to keep the current password. @@ -239,6 +253,7 @@ try { Name Email + Workload Editing Actions @@ -248,10 +263,29 @@ try { - Edit + + Allowed + + Not Allowed + + + + Edit + +
+ + + + + + + + +
+
- +
diff --git a/db/migrations/022_add_can_edit_workload_to_teachers.sql b/db/migrations/022_add_can_edit_workload_to_teachers.sql new file mode 100644 index 0000000..dafb6b1 --- /dev/null +++ b/db/migrations/022_add_can_edit_workload_to_teachers.sql @@ -0,0 +1,2 @@ +ALTER TABLE `teachers` +ADD COLUMN `can_edit_workload` BOOLEAN NOT NULL DEFAULT 0 COMMENT 'If true, the teacher can edit their own workload'; \ No newline at end of file diff --git a/includes/navbar.php b/includes/navbar.php index 4ce32cd..29edb62 100644 --- a/includes/navbar.php +++ b/includes/navbar.php @@ -31,6 +31,11 @@ $role = $_SESSION['role'] ?? ''; + + + + + diff --git a/login.php b/login.php index ddac017..d4ac40d 100644 --- a/login.php +++ b/login.php @@ -30,6 +30,14 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $_SESSION['username'] = $user['username']; $_SESSION['role'] = $user['role']; $_SESSION['school_id'] = $user['school_id']; + + // If the user is a teacher, fetch their workload editing permission + if ($user['role'] === 'teacher') { + $stmt = $pdo->prepare("SELECT can_edit_workload FROM teachers WHERE user_id = ?"); + $stmt->execute([$user['id']]); + $teacher_permission = $stmt->fetchColumn(); + $_SESSION['can_edit_workload'] = (bool)$teacher_permission; + } // Redirect to the main page header("Location: dashboard.php"); diff --git a/register.php b/register.php index 37333d8..4f42a53 100644 --- a/register.php +++ b/register.php @@ -3,19 +3,8 @@ require_once __DIR__ . '/db/config.php'; $message = ''; $error = ''; -$registration_open = false; -try { - $pdo = db(); - $stmt = $pdo->query("SELECT COUNT(*) FROM schools"); - if ($stmt->fetchColumn() == 0) { - $registration_open = true; - } -} catch (PDOException $e) { - $error = 'Database error: ' . $e->getMessage(); -} - -if ($registration_open && $_SERVER['REQUEST_METHOD'] === 'POST') { +if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = $_POST['username'] ?? null; $password = $_POST['password'] ?? null; $school_name = $_POST['school_name'] ?? null; @@ -25,6 +14,7 @@ if ($registration_open && $_SERVER['REQUEST_METHOD'] === 'POST') { $error = 'All fields are required.'; } else { try { + $pdo = db(); $pdo->beginTransaction(); // Check if school name already exists @@ -35,7 +25,7 @@ if ($registration_open && $_SERVER['REQUEST_METHOD'] === 'POST') { $pdo->rollBack(); } else { // Insert new school - $stmt = $pdo->prepare("INSERT INTO schools (name) VALUES (?)"); + $stmt = $pdo->prepare("INSERT INTO schools (name) VALUES (?)" ); $stmt->execute([$school_name]); $school_id = $pdo->lastInsertId(); @@ -99,7 +89,7 @@ if ($registration_open && $_SERVER['REQUEST_METHOD'] === 'POST') {
- +
@@ -124,11 +114,6 @@ if ($registration_open && $_SERVER['REQUEST_METHOD'] === 'POST') {

Already have an account? Login here.

- -
- Registration is currently closed. Only one school can be registered. -

Go to Login

-