X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/737904fa63e62066e52588cfe731bac41f4aae1f..refs/pull/3878/head:/app/Http/Controllers/UserPreferencesController.php diff --git a/app/Http/Controllers/UserPreferencesController.php b/app/Http/Controllers/UserPreferencesController.php index aef959712..11ff338f3 100644 --- a/app/Http/Controllers/UserPreferencesController.php +++ b/app/Http/Controllers/UserPreferencesController.php @@ -115,6 +115,9 @@ class UserPreferencesController extends Controller return response('', 204); } + /** + * Update the favorite status for a code language. + */ public function updateCodeLanguageFavourite(Request $request) { $validated = $this->validate($request, [ @@ -134,5 +137,27 @@ class UserPreferencesController extends Controller } setting()->putForCurrentUser('code-language-favourites', implode(',', $currentFavorites)); + return response('', 204); + } + + /** + * Update a boolean user preference setting. + */ + public function updateBooleanPreference(Request $request) + { + $allowedKeys = ['md-scroll-sync', 'md-show-preview']; + $validated = $this->validate($request, [ + 'name' => ['required', 'string'], + 'value' => ['required'], + ]); + + if (!in_array($validated['name'], $allowedKeys)) { + return response('Invalid boolean preference', 500); + } + + $value = $validated['value'] === 'true' ? 'true' : 'false'; + setting()->putForCurrentUser($validated['name'], $value); + + return response('', 204); } }