diff options
| author | Lester Caine <lester@lsces.co.uk> | 2026-06-06 22:07:08 +0100 |
|---|---|---|
| committer | Lester Caine <lester@lsces.co.uk> | 2026-06-06 22:07:08 +0100 |
| commit | 5e7db08bf0b29843a80205a023157ae3e218d211 (patch) | |
| tree | 35a42bbf51a9ea7f8d598b4f24e70da37547114f | |
| parent | 67c559e6af5d63bd605d24d41dec7c8b79a441d3 (diff) | |
| download | liberty-5e7db08bf0b29843a80205a023157ae3e218d211.tar.gz liberty-5e7db08bf0b29843a80205a023157ae3e218d211.tar.bz2 liberty-5e7db08bf0b29843a80205a023157ae3e218d211.zip | |
liberty: fix null mUserId in LibertyXrefType JOIN conditions
Same pattern as contact: direct mUserId string interpolation produces
'purm.user_id=' with no value for anonymous users (null mUserId),
causing Firebird -104 Token unknown. Four occurrences fixed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| -rw-r--r-- | includes/classes/LibertyXrefType.php | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/includes/classes/LibertyXrefType.php b/includes/classes/LibertyXrefType.php index d54e0c4..9ee67d8 100644 --- a/includes/classes/LibertyXrefType.php +++ b/includes/classes/LibertyXrefType.php @@ -132,7 +132,7 @@ class LibertyXrefType extends LibertyBase { $result = $gBitSystem->mDb->query( "SELECT g.* FROM `".BIT_DB_PREFIX."liberty_xref_group` g LEFT OUTER JOIN `".BIT_DB_PREFIX."users_roles_map` purm - ON purm.`user_id` = ".$gBitUser->mUserId." AND purm.`role_id` = g.`role_id` + ON purm.`user_id` = ".(int)($gBitUser->mUserId ?? 0)." AND purm.`role_id` = g.`role_id` WHERE g.`content_type_guid` = '$contentTypeGuid' AND g.`sort_order` > 0 AND (g.`role_id` IN(".implode(',', array_fill(0, count($roles), '?')).") OR purm.`user_id` = ?) ORDER BY g.`sort_order`", @@ -166,7 +166,7 @@ class LibertyXrefType extends LibertyBase { JOIN `".BIT_DB_PREFIX."liberty_xref_group` t ON t.`x_group` = g.`x_group` AND t.`content_type_guid` = '$contentTypeGuid' LEFT OUTER JOIN `".BIT_DB_PREFIX."users_roles_map` purm - ON purm.`user_id` = ".$gBitUser->mUserId." AND purm.`role_id` = g.`role_id` + ON purm.`user_id` = ".(int)($gBitUser->mUserId ?? 0)." AND purm.`role_id` = g.`role_id` WHERE g.`content_type_guid` = '$contentTypeGuid' AND t.`sort_order` = 0 AND (g.`role_id` IN(".implode(',', array_fill(0, count($roles), '?')).") OR purm.`user_id` = ?) ORDER BY g.`item`", @@ -264,7 +264,7 @@ class LibertyXrefType extends LibertyBase { "SELECT DISTINCT g.`template` FROM `".BIT_DB_PREFIX."liberty_xref_item` g LEFT OUTER JOIN `".BIT_DB_PREFIX."users_roles_map` purm - ON purm.`user_id` = ".$gBitUser->mUserId." AND purm.`role_id` = g.`role_id` + ON purm.`user_id` = ".(int)($gBitUser->mUserId ?? 0)." AND purm.`role_id` = g.`role_id` WHERE g.`content_type_guid` = '$contentTypeGuid' AND (g.`role_id` IN(".implode(',', array_fill(0, count($roles), '?')).") OR purm.`user_id` = ?) ORDER BY g.`template`", @@ -299,7 +299,7 @@ class LibertyXrefType extends LibertyBase { ON t.`x_group` = r.`x_group` AND t.`content_type_guid` = '$contentTypeGuid' LEFT JOIN `".BIT_DB_PREFIX."liberty_xref` d ON d.`content_id` = ? AND d.`item` = r.`item` LEFT OUTER JOIN `".BIT_DB_PREFIX."users_roles_map` purm - ON purm.`user_id` = ".$gBitUser->mUserId." AND purm.`role_id` = r.`role_id` + ON purm.`user_id` = ".(int)($gBitUser->mUserId ?? 0)." AND purm.`role_id` = r.`role_id` WHERE r.`content_type_guid` = '$contentTypeGuid' AND t.`sort_order` = 0 AND (r.`role_id` IN(".implode(',', array_fill(0, count($roles), '?')).") OR purm.`user_id` = ?) ORDER BY r.`item`", |
