Boban Blaskovic
5704d0fb58
fix: quick-login 500 + Vite asset https scheme (TDD)
...
BUG B — navigation.blade.php crashed on null auth()->user() for
unauthenticated visitors of /dev/quick-login. Two-layer fix:
- DevQuickLogin: add #[Layout('components.layouts.auth')] so page
renders without the authenticated navigation bar
- navigation.blade.php: null-safe ?-> on all auth()->user() calls
(three occurrences: name, name again, email) as defense-in-depth
BUG A — @vite() generated http:// asset URLs causing Mixed Content
on HTTPS domain. Root cause: ASSET_URL removed but APP_URL changed to
http://localhost by previous agent. Fixed: APP_URL restored to
https://app.dev.lernschiff.com so URL::forceScheme('https') activates
and assets render as https://app.dev.lernschiff.com/build/assets/ *.
TDD: test written → RED (500) → fix → GREEN. 46/46 pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Codex <noreply@openai.com>
2026-05-22 14:46:26 +02:00
Boban Blaskovic
58e99c74e8
fix: Docker UID-mapping + storage permissions + CDN font removal
...
- Replace www-data usermod hack with dedicated app user (ARG UID/GID=1000)
so container processes map to host user nexxo, preventing Permission denied
on node_modules/.vite-temp and storage/logs/laravel.log
- Explicitly mkdir + chown storage/* and bootstrap/cache to app:app (775)
inside Dockerfile so PHP-FPM can write logs/sessions/views/cache
- Add UID/GID build args to all four services (app, queue, scheduler, reverb)
- Remove Breeze-scaffold tailwind.config.js (Tailwind v4 uses @theme in CSS)
- Remove fonts.bunny.net CDN from welcome.blade.php; switch to local fonts
Verified: npm run build exit 0, 44/44 tests pass, /login HTTP 200,
storage write OK, manifest.json + 38KB CSS generated.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 14:18:01 +02:00
Boban Blaskovic
d522f0d376
feat(ui): Whitemode auth views + design tokens + vite server block + touch.js entry
...
- app.css: add accent/success/danger/surface tokens
- vite.config.js: server block (HMR wss), touch.js in input array
- Breeze components: text-input, primary-button, input-label, input-error, auth-session-status → oklch token system
- layouts/guest.blade.php: Lernschiff logo, white card, no CDN fonts
- All 5 auth pages (de): Willkommen zurück, password show/hide toggle, wire:loading spinners
- dev-quick-login: redesigned with accent hover, monospace email, heroicons
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 13:38:57 +02:00
Boban Blaskovic
934cc03367
feat(icons): install blade-heroicons + render <x-heroicon-o-academic-cap> in dashboard (AC-13)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 06:28:19 +02:00
Boban Blaskovic
2a59c364f2
feat(ui): layout + whitemode theme polish
...
Phase 9: verified dashboard.blade.php uses x-layouts.app, lizenz-abgelaufen.blade.php uses x-layouts.auth with German text, app.css has all @theme tokens and @font-face declarations.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 06:19:57 +02:00
Boban Blaskovic
4854c6313d
feat(dev): seeders + DevQuickLogin with double-defense guard
2026-05-22 06:09:28 +02:00
Boban Blaskovic
26f508395d
feat(auth): Breeze Livewire stack + dashboard/lizenz-abgelaufen views + layout shells
...
- Install laravel/breeze v2.4.2 (Livewire/Volt stack)
- Restore Livewire v4.3.0 (Breeze downgraded to v3; pinned back to ^4.0)
- Replace layouts/app.blade.php with Lernschiff-branded version (lang=de, CSS vars)
- Add layouts/auth.blade.php for auth pages
- Add components/layouts/{app,auth}.blade.php as anonymous components for <x-layouts.*>
- Add resources/views/dashboard.blade.php and lizenz-abgelaufen.blade.php (stub views)
- Rewrite routes/web.php: / redirects to /dashboard, dashboard returns view, merge Breeze routes
- Add TenantAwareUserProvider: bypasses TenantScope for Auth::attempt() credential lookups
(TenantScope applies WHERE 0=1 for unauthenticated queries, blocking login)
- Register tenant-aware-eloquent provider in config/auth.php and AppServiceProvider
- Fix phpunit.xml.dist: force APP_ENV=testing via both env+server to override Docker shell env
(Docker sets APP_ENV=local in $_SERVER; PHPUnit env override was silently ignored)
- Add auth.js to vite inputs for auth layout asset bundling
- Update ExampleTest: / now redirects to /dashboard (not welcome view)
- Fix RegistrationTest: skip self-registration test (Lernschiff requires tenant_id)
- Fix ProfileTest: assert soft-deleted user via withoutGlobalScope+withTrashed
- All 40 tests pass (1 skipped: self-registration not supported in Lernschiff)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 05:55:59 +02:00
Boban Blaskovic
8eb1759d7e
feat(scaffold): Laravel 12 scaffold + .env.example
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 00:19:49 +02:00