fix: 6 Claude-Audit-Fixes (3 CRIT + 3 HIGH)

CRITICAL:
- Logout: LoginScreen statt MeloHome pushen (home_screen.dart)
- Path Traversal: sanitizeDateiname() zentral + sync-loop abgesichert
- SecureStorage: flutter_secure_storage für Token+Passwort (auth_service, navidrome)

HIGH:
- Seek: PlayerService.seek() reload-frei (audio_handler)
- Play/Pause: Zielzustand statt Toggle für System-Controls
- X-User: Header entfernt, Server verlässt sich auf JWT
This commit is contained in:
Dustin
2026-08-03 01:41:04 +02:00
parent de71119235
commit e46ffa76a3
10 changed files with 76 additions and 34 deletions
+4 -4
View File
@@ -54,20 +54,20 @@ class MeloAudioHandler extends BaseAudioHandler {
Future<void> play() async {
if (_player.aktuellerSong != null) {
_playing = true;
await _player.playPause();
await _player.play();
}
}
@override
Future<void> pause() async {
_playing = false;
await _player.playPause();
await _player.pause();
}
@override
Future<void> stop() async {
_playing = false;
await _player.playPause();
await _player.pause();
playbackState.add(playbackState.value.copyWith(
controls: [MediaControl.play],
playing: false,
@@ -77,7 +77,7 @@ class MeloAudioHandler extends BaseAudioHandler {
@override
Future<void> seek(Duration position) async {
_player.spiele(_player.aktuellerSong!, position: position.inSeconds);
await _player.seek(position);
}
@override