diff options
| author | ilotterytea <iltsu@alright.party> | 2025-12-11 01:05:49 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2025-12-11 01:05:49 +0500 |
| commit | e8b0b4769d013862a54c273931ac4456c486e9ab (patch) | |
| tree | 3a46fc97038b5fcc166af4a8625a5e22c5a127e7 /system/reports/answer.php | |
| parent | b852b37bf1a8b55d5d00629f2cbe510556e7360a (diff) | |
feat: report page (for mods)
Diffstat (limited to 'system/reports/answer.php')
| -rw-r--r-- | system/reports/answer.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/system/reports/answer.php b/system/reports/answer.php new file mode 100644 index 0000000..8c88a4a --- /dev/null +++ b/system/reports/answer.php @@ -0,0 +1,42 @@ +<?php +include_once "{$_SERVER['DOCUMENT_ROOT']}/lib/alert.php"; +include_once "{$_SERVER['DOCUMENT_ROOT']}/lib/accounts.php"; +include_once "{$_SERVER['DOCUMENT_ROOT']}/lib/config.php"; +include_once "{$_SERVER['DOCUMENT_ROOT']}/lib/utils.php"; + +if (!CONFIG['reports']['enable']) { + generate_alert("/404.php", "Reports are disabled", 405); + exit(); +} + +if (!authorize_user(true) || !$_SESSION["user_role"]["permission_report_review"]) { + generate_alert("/404.php", "Not enough permissions", 403); + exit(); +} + +if (!isset($_POST["id"], $_POST["response"])) { + generate_alert("/system/reports/", "Not enough POST fields"); + exit(); +} + +$id = $_POST["id"]; + +$db = new PDO(CONFIG['database']['url'], CONFIG['database']['user'], CONFIG['database']['pass']); + +$stmt = $db->prepare("SELECT id, sender_id FROM reports WHERE id = ? AND resolved_by IS NULL"); +$stmt->execute([$id]); + +$row = $stmt->fetch(PDO::FETCH_ASSOC) ?: null; + +if (!$row) { + generate_alert("/system/reports/", "Report ID $id not found", 404); + exit(); +} + +$db->prepare("UPDATE reports SET resolved_by = ?, response_message = ? WHERE id = ?") + ->execute([$_SESSION['user_id'], str_safe($_POST['response'], null), $id]); + +$db->prepare("INSERT INTO inbox_messages(recipient_id, message_type, contents, link) VALUES (?, ?, ?, ?)") + ->execute([$row["sender_id"], "2", "Your report has been reviewed!", "/report/?id=" . $row["id"]]); + +generate_alert("/system/reports", 'The report has been reviewed!', 200);
\ No newline at end of file |
