Skip to content

Commit d5257e6

Browse files
committed
fix: Convert user settings to proper type
1 parent 00579d0 commit d5257e6

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

website/app/GeoKrety/Service/UserSettings.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,13 @@ 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+
$session_value = $setting->getRaw('value');
46+
if ($setting_param->load(['name = ?', $setting_name], ttl: 0)) {
47+
$session_value = $setting_param->convertValueToSettingType($session_value);
48+
}
49+
\Base::instance()->set('SESSION.SETTINGS.'.$setting_name, $session_value);
4650

4751
return true;
4852
}

0 commit comments

Comments
 (0)