3.4 KiB
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.mdpominięto w trybie plan-first. Commit fazowy pominięto zgodnie zpreferences.auto_commit: falseoraz 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.