Files
finansePRO/.paul/plans/20260712-1647-zapamietywanie-logowania/SUMMARY.md
T
2026-07-12 19:21:35 +02:00

3.4 KiB

plan_id, title, completed, storage, quality_radar
plan_id title completed storage quality_radar
20260712-1647-zapamietywanie-logowania Zapamiętywanie logowania przez 30 dni 2026-07-12T17:31:28+02:00 plan-first degraded

Summary: Zapamiętywanie logowania przez 30 dni

Objective

Dodano opcjonalne logowanie zapamiętane przez 30 dni z niezależnym tokenem dla każdego komputera.

What Was Built

Area Result
Dane Tabela remember_tokens z selektorem, hashem walidatora i terminem ważności; tabela utworzona również na zdalnej bazie.
Logowanie Checkbox remember wystawia 30-dniowe cookie tylko po zaznaczeniu.
Ochrona tras AuthFilter odtwarza zwykłą sesję z poprawnego tokenu.
Wylogowanie Usuwa token wyłącznie bieżącego urządzenia, cookie i sesję.
Test Dodano jeden test dwóch tokenów, manipulacji walidatorem i selektywnego unieważnienia.

Files Modified

  • app/Database/Migrations/2026-07-12-160001_CreateRememberTokens.php — schemat tokenów.
  • app/Models/RememberTokenModel.php — wystawianie, weryfikacja i usuwanie tokenów.
  • app/Controllers/Auth.php — wystawianie cookie i selektywne wylogowanie.
  • app/Filters/AuthFilter.php — odtworzenie sesji.
  • app/Views/auth/login.php — checkbox „Zapamiętaj mnie”.
  • tests/unit/RememberTokenModelTest.php — kontrola logiki wielu urządzeń.

Acceptance Criteria Results

Criterion Status Evidence
AC-1 Pass Bez checkboxa Auth::login nie wystawia trwałego cookie.
AC-2 Partial Kod, cookie 30 dni i zdalna tabela są gotowe; brak potwierdzonego końcowego UAT po migracji.
AC-3 Partial Model dopisuje niezależne rekordy, a logout usuwa bieżący selektor; test nie został uruchomiony lokalnie.
AC-4 Partial Filtr odrzuca zły/wygasły token i usuwa cookie; test nie został uruchomiony lokalnie.

Verification Results

Check Result Notes
php -l dla 6 plików Pass Brak błędów składni.
vendor/bin/phpunit tests/unit/RememberTokenModelTest.php Skipped Lokalnie brak vendor/ i vendor/bin/phpunit.
Zdalny remember_tokens Pass Potwierdzono 6 kolumn i 3 indeksy.
UAT w dwóch profilach Skipped Niepotwierdzony przez użytkownika po aktualizacji bazy.

Quality Radar Results

Status: degraded

  • New risks: wdrożenie kodu przed migracją powoduje błąd DB przy użyciu tokenu.
  • Resolved risks: zdalna tabela została utworzona; surowy walidator nie trafia do bazy.
  • Deferred risks: test PHPUnit i UAT dwóch profili — środowisko lokalne nie ma vendor/, UAT wymaga potwierdzenia przeglądarkowego.
  • Raw outputs: .paul/codebase/radar/codebase-memory-post-apply.txt.

Deviations

  • PHPUnit nie został uruchomiony lokalnie; wykonano lint pliku testowego.
  • UAT w dwóch profilach nie został potwierdzony przed UNIFY.
  • Legacy ROADMAP.md pominięto w trybie plan-first. Commit fazowy pominięto zgodnie z preferences.auto_commit: false oraz z powodu licznych niezwiązanych zmian w working tree.

Key Decisions / Patterns

  • Osobny token per urządzenie zamiast wydłużania globalnej sesji.
  • W bazie przechowywany jest wyłącznie hash walidatora.
  • Wylogowanie nie usuwa tokenów innych urządzeń.

Follow-up

  • Jednorazowo potwierdzić logowanie w dwóch profilach, zamknięcie sesji i wylogowanie tylko jednego profilu.