From 2ed49eb12daa9c5fa86a42e35ed3e4d9336bf978 Mon Sep 17 00:00:00 2001 From: Yasen Pramatarov Date: Tue, 11 Nov 2025 17:40:08 +0200 Subject: [PATCH] Makes sure feedback messages are included only once --- app/core/DatabaseConnector.php | 2 +- app/helpers/feedback.php | 13 ++----------- app/pages/admin-tools.php | 2 +- app/pages/agents.php | 2 +- app/pages/components.php | 2 +- app/pages/conferences.php | 2 +- app/pages/config.php | 2 +- app/pages/credentials.php | 6 +++--- app/pages/dashboard.php | 2 +- app/pages/graphs.php | 2 +- app/pages/help.php | 2 +- app/pages/latest.php | 2 +- app/pages/livejs.php | 2 +- app/pages/login.php | 8 ++++---- app/pages/participants.php | 2 +- app/pages/profile.php | 4 ++-- app/pages/security.php | 2 +- app/pages/settings.php | 2 +- app/pages/status.php | 2 +- app/pages/theme.php | 2 +- plugins/logs/controllers/logs.php | 2 +- plugins/register/controllers/register.php | 2 +- 22 files changed, 29 insertions(+), 38 deletions(-) diff --git a/app/core/DatabaseConnector.php b/app/core/DatabaseConnector.php index 9c8cc23..4790b26 100644 --- a/app/core/DatabaseConnector.php +++ b/app/core/DatabaseConnector.php @@ -29,7 +29,7 @@ class DatabaseConnector // Show error and exit Feedback::flash('ERROR', 'DEFAULT', getError('Error connecting to the database.', $e->getMessage())); include __DIR__ . '/../templates/page-header.php'; - include __DIR__ . '/../helpers/feedback.php'; + include_once __DIR__ . '/../helpers/feedback.php'; include __DIR__ . '/../templates/page-footer.php'; exit(); } diff --git a/app/helpers/feedback.php b/app/helpers/feedback.php index 059c881..26b01d7 100644 --- a/app/helpers/feedback.php +++ b/app/helpers/feedback.php @@ -6,17 +6,8 @@ * Combines functionality to handle retrieving and displaying feedback messages. */ -// Prevent multiple display of flash messages on the same page -if (!isset($_SESSION['flash_messages_displayed'])) { - $_SESSION['flash_messages_displayed'] = false; -} - -// Get any flash messages from previous request (only once per page load) -$flash_messages = []; -if (!$_SESSION['flash_messages_displayed']) { - $flash_messages = Feedback::getFlash(); - $_SESSION['flash_messages_displayed'] = true; -} +// Get any flash messages from previous request +$flash_messages = Feedback::getFlash(); if (!empty($flash_messages)) { $system_messages = array_merge($system_messages ?? [], array_map(function($flash) { diff --git a/app/pages/admin-tools.php b/app/pages/admin-tools.php index eb5127a..dc08610 100644 --- a/app/pages/admin-tools.php +++ b/app/pages/admin-tools.php @@ -29,7 +29,7 @@ if (!$canAdmin) { } // Get any old feedback messages -include __DIR__ . '/../helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; // Handle actions $action = $_POST['action'] ?? ''; diff --git a/app/pages/agents.php b/app/pages/agents.php index 8c51012..72c6986 100644 --- a/app/pages/agents.php +++ b/app/pages/agents.php @@ -167,7 +167,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // Load the template include '../app/templates/agents.php'; diff --git a/app/pages/components.php b/app/pages/components.php index fca154b..0319cd3 100644 --- a/app/pages/components.php +++ b/app/pages/components.php @@ -101,7 +101,7 @@ if ($response['db'] === null) { } // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // display the widget include '../app/templates/components.php'; diff --git a/app/pages/conferences.php b/app/pages/conferences.php index 12beb8e..079672f 100644 --- a/app/pages/conferences.php +++ b/app/pages/conferences.php @@ -160,7 +160,7 @@ if ($response['db'] === null) { } // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // display the widget include '../app/templates/conferences.php'; diff --git a/app/pages/config.php b/app/pages/config.php index bea1f33..56e108a 100644 --- a/app/pages/config.php +++ b/app/pages/config.php @@ -7,7 +7,7 @@ */ // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; require '../app/classes/config.php'; require '../app/classes/api_response.php'; diff --git a/app/pages/credentials.php b/app/pages/credentials.php index 7719681..48498c3 100644 --- a/app/pages/credentials.php +++ b/app/pages/credentials.php @@ -143,7 +143,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') { } } // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // Load the 2FA setup template include '../app/templates/credentials-2fa-setup.php'; @@ -151,7 +151,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') { case 'verify': // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // Load the 2FA verification template include '../app/templates/credentials-2fa-verify.php'; @@ -159,7 +159,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') { default: // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // Load the combined management template include '../app/templates/credentials-manage.php'; diff --git a/app/pages/dashboard.php b/app/pages/dashboard.php index c7545a5..df28955 100644 --- a/app/pages/dashboard.php +++ b/app/pages/dashboard.php @@ -10,7 +10,7 @@ */ // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; require '../app/classes/conference.php'; require '../app/classes/participant.php'; diff --git a/app/pages/graphs.php b/app/pages/graphs.php index bb0f997..f8422cd 100644 --- a/app/pages/graphs.php +++ b/app/pages/graphs.php @@ -85,7 +85,7 @@ $widget['name'] = 'Graphs'; $widget['title'] = 'Jitsi graphs'; // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; // Load the template include '../app/templates/graphs.php'; diff --git a/app/pages/help.php b/app/pages/help.php index cbfc7bf..35e5b63 100644 --- a/app/pages/help.php +++ b/app/pages/help.php @@ -1,6 +1,6 @@ getPlatformJsFile($platformDetails[0]['jitsi_url'], $item, $raw); // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; // Load the template include '../app/templates/livejs.php'; diff --git a/app/pages/login.php b/app/pages/login.php index a631d81..fdf9206 100644 --- a/app/pages/login.php +++ b/app/pages/login.php @@ -60,7 +60,7 @@ try { } // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // Make userId available to template $userId = $pending2FA['user_id']; @@ -115,7 +115,7 @@ try { $security->generateCsrfToken(); // Load the forgot password form - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; include '../app/templates/form-password-forgot.php'; exit(); @@ -175,7 +175,7 @@ try { } // Show reset password form - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; include '../app/templates/form-password-reset.php'; exit(); @@ -272,7 +272,7 @@ if (!empty($config['login_message'])) { } // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; // Load the template include '../app/templates/form-login.php'; diff --git a/app/pages/participants.php b/app/pages/participants.php index bac2ab4..0123b75 100644 --- a/app/pages/participants.php +++ b/app/pages/participants.php @@ -170,7 +170,7 @@ if ($response['db'] === null) { } // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // display the widget include '../app/templates/participants.php'; diff --git a/app/pages/profile.php b/app/pages/profile.php index a53aa4e..74450af 100644 --- a/app/pages/profile.php +++ b/app/pages/profile.php @@ -160,7 +160,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') { $isTimezoneSet = !empty($userDetails[0]['timezone']); // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // Load the template include '../app/templates/profile-edit.php'; @@ -168,7 +168,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'POST') { default: // Get any new feedback messages - include '../app/helpers/feedback.php'; + include_once '../app/helpers/feedback.php'; // Load the template include '../app/templates/profile.php'; diff --git a/app/pages/security.php b/app/pages/security.php index 6d1cdcb..074d436 100644 --- a/app/pages/security.php +++ b/app/pages/security.php @@ -168,7 +168,7 @@ $whitelisted = $rateLimiter->getWhitelistedIps(); $blacklisted = $rateLimiter->getBlacklistedIps(); // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; // Load the template include '../app/templates/security.php'; diff --git a/app/pages/settings.php b/app/pages/settings.php index 20d1f10..c046f54 100644 --- a/app/pages/settings.php +++ b/app/pages/settings.php @@ -12,7 +12,7 @@ $isAjax = isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'; // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; $action = $_REQUEST['action'] ?? ''; $agent = $_REQUEST['agent'] ?? ''; diff --git a/app/pages/status.php b/app/pages/status.php index fb2badc..82a6b97 100644 --- a/app/pages/status.php +++ b/app/pages/status.php @@ -9,7 +9,7 @@ */ // Get any new feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; require '../app/classes/agent.php'; require '../app/classes/host.php'; diff --git a/app/pages/theme.php b/app/pages/theme.php index 0571040..7c35794 100644 --- a/app/pages/theme.php +++ b/app/pages/theme.php @@ -20,7 +20,7 @@ if (!Session::isValidSession()) { } // Get any old feedback messages -include '../app/helpers/feedback.php'; +include_once '../app/helpers/feedback.php'; // Handle theme switching if (isset($_GET['switch_to'])) { diff --git a/plugins/logs/controllers/logs.php b/plugins/logs/controllers/logs.php index 31d0be8..e05d469 100644 --- a/plugins/logs/controllers/logs.php +++ b/plugins/logs/controllers/logs.php @@ -113,7 +113,7 @@ if (!empty($search)) { $username = $userObject->getUserDetails($userId)[0]['username']; // Get any new feedback messages -include dirname(__FILE__, 4) . '/app/helpers/feedback.php'; +include_once dirname(__FILE__, 4) . '/app/helpers/feedback.php'; // Load plugin helpers include PLUGIN_LOGS_PATH . 'helpers/logs_view_helper.php'; diff --git a/plugins/register/controllers/register.php b/plugins/register/controllers/register.php index 9862614..71e78bc 100644 --- a/plugins/register/controllers/register.php +++ b/plugins/register/controllers/register.php @@ -99,7 +99,7 @@ if ($config['registration_enabled'] == true) { } // Get any new feedback messages - include dirname(__FILE__, 4) . '/app/helpers/feedback.php'; + include_once dirname(__FILE__, 4) . '/app/helpers/feedback.php'; // Load the template include PLUGIN_REGISTER_PATH . 'views/form-register.php';