From cfad223824673a2326130a7a1065a5e1a637dbd7 Mon Sep 17 00:00:00 2001 From: FreddleSpl0it <75116288+FreddleSpl0it@users.noreply.github.com> Date: Mon, 9 Nov 2026 23:13:26 +0100 Subject: [PATCH] [Web] force_tfa: read the flag with JSON_VALUE --- data/web/inc/functions.inc.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/web/inc/functions.inc.php b/data/web/inc/functions.inc.php index 0c05293c4..d548e6764 100644 --- a/data/web/inc/functions.inc.php +++ b/data/web/inc/functions.inc.php @@ -1416,11 +1416,11 @@ function set_tfa($_data) { // Block TFA removal if force_tfa policy is active $is_forced_tfa = false; if ($_SESSION['mailcow_cc_role'] === 'user') { - $stmt_check = $pdo->prepare("SELECT JSON_EXTRACT(`attributes`, '$.force_tfa') FROM `mailbox` WHERE `username` = ?"); + $stmt_check = $pdo->prepare("SELECT JSON_VALUE(`attributes`, '$.force_tfa') FROM `mailbox` WHERE `username` = ?"); $stmt_check->execute(array($username)); $is_forced_tfa = ($stmt_check->fetchColumn() == '1'); } else { - $stmt_check = $pdo->prepare("SELECT JSON_EXTRACT(`attributes`, '$.force_tfa') FROM `admin` WHERE `username` = ?"); + $stmt_check = $pdo->prepare("SELECT JSON_VALUE(`attributes`, '$.force_tfa') FROM `admin` WHERE `username` = ?"); $stmt_check->execute(array($username)); $is_forced_tfa = ($stmt_check->fetchColumn() == '1'); } @@ -1687,11 +1687,11 @@ function unset_tfa_key($_data) { // Block key removal if force_tfa policy is active $is_forced_tfa = false; if ($_SESSION['mailcow_cc_role'] === 'user') { - $stmt_check = $pdo->prepare("SELECT JSON_EXTRACT(`attributes`, '$.force_tfa') FROM `mailbox` WHERE `username` = ?"); + $stmt_check = $pdo->prepare("SELECT JSON_VALUE(`attributes`, '$.force_tfa') FROM `mailbox` WHERE `username` = ?"); $stmt_check->execute(array($username)); $is_forced_tfa = ($stmt_check->fetchColumn() == '1'); } else { - $stmt_check = $pdo->prepare("SELECT JSON_EXTRACT(`attributes`, '$.force_tfa') FROM `admin` WHERE `username` = ?"); + $stmt_check = $pdo->prepare("SELECT JSON_VALUE(`attributes`, '$.force_tfa') FROM `admin` WHERE `username` = ?"); $stmt_check->execute(array($username)); $is_forced_tfa = ($stmt_check->fetchColumn() == '1'); }