Files
Atomcms-edit/app/Http/Controllers/User/PreferencesController.php
T
2026-05-09 17:32:17 +02:00

55 lines
1.6 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
class PreferencesController extends Controller
{
public function edit(): View
{
$user = Auth::user();
$preferences = $user->preferences ?? $this->getDefaultPreferences();
return view('user.settings.preferences', [
'preferences' => $preferences,
]);
}
public function update(Request $request): RedirectResponse
{
$user = Auth::user();
$validated = $request->validate([
'radio_auto_play' => 'sometimes|boolean',
'radio_shouts' => 'sometimes|boolean',
'radio_notifications' => 'sometimes|boolean',
'friend_requests' => 'sometimes|boolean',
'room_invites' => 'sometimes|boolean',
'email_notifications' => 'sometimes|boolean',
]);
$preferences = array_merge($this->getDefaultPreferences(), $validated);
$user->preferences = $preferences;
$user->save();
return redirect()->route('settings.preferences.show')->with('success', __('Preferences updated successfully'));
}
private function getDefaultPreferences(): array
{
return [
'radio_auto_play' => false,
'radio_shouts' => true,
'radio_notifications' => true,
'friend_requests' => true,
'room_invites' => true,
'email_notifications' => false,
];
}
}