Skip to content

Commit bb37f25

Browse files
committed
fix: Conert user settings to proper type
1 parent 18fa2d1 commit bb37f25

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

website/app/GeoKrety/Service/UserSettings.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,14 @@ public function put(User|int $user, string $setting_name, $value): bool {
4040

4141
Event::instance()->emit('user.setting.save.success', $setting);
4242

43-
// Update session with the value (trigger handles DB cleanup if matches default)
44-
// Use getRaw to avoid triggering the getter which requires name relationship
45-
\Base::instance()->set('SESSION.SETTINGS.'.$setting_name, $setting->getRaw('value'));
43+
// Update session with a typed value so templates/controllers get correct booleans/ints
44+
$setting_param = new UsersSettingsParameters();
45+
if ($setting_param->load(['name = ?', $setting_name], ttl: 0)) {
46+
$session_value = $setting_param->convertValueToSettingType($setting->getRaw('value'));
47+
} else {
48+
$session_value = $setting->getRaw('value');
49+
}
50+
\Base::instance()->set('SESSION.SETTINGS.'.$setting_name, $session_value);
4651

4752
return true;
4853
}

0 commit comments

Comments
 (0)