From 6985dc4e9dfcec9e075e1fd784bb552ffba2a820 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Mon, 24 Jul 2023 09:11:32 +0900 Subject: [PATCH] ACL\Login fix for UNIT DEFAULT return It has to be int or null but because the SQL result is undefined (string) it needs to be converted on return if it is a numeric value, else null will be returned (it is the edit access id PK so it has to be numeric) --- www/lib/CoreLibs/ACL/Login.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/www/lib/CoreLibs/ACL/Login.php b/www/lib/CoreLibs/ACL/Login.php index 4376933e..c9bca303 100644 --- a/www/lib/CoreLibs/ACL/Login.php +++ b/www/lib/CoreLibs/ACL/Login.php @@ -1058,9 +1058,9 @@ class Login ]; // set the default unit if ($res['edit_default']) { - $_SESSION['UNIT_DEFAULT'] = $res['edit_access_id']; + $_SESSION['UNIT_DEFAULT'] = (int)$res['edit_access_id']; } - $_SESSION['UNIT_UID'][$res['uid']] = $res['edit_access_id']; + $_SESSION['UNIT_UID'][$res['uid']] = (int)$res['edit_access_id']; // sub arrays for simple access array_push($eauid, $res['edit_access_id']); $unit_acl[$res['edit_access_id']] = $res['level']; @@ -2345,7 +2345,10 @@ HTML; is_array($_SESSION['UNIT']) && !array_key_exists($edit_access_id, $_SESSION['UNIT']) ) { - return $_SESSION['UNIT_DEFAULT'] ?? null; + $edit_access_id = null; + if (is_numeric($_SESSION['UNIT_DEFAULT'])) { + $edit_access_id = (int)$_SESSION['UNIT_DEFAULT']; + } } return $edit_access_id; }