Commit Graph

7 Commits (6de4131389094a2f63b7459a40139cea67ff2467)

Author SHA1 Message Date
Boban Blaskovic 6de4131389 feat(license): EnsureActiveLicense full implementation + license/dashboard routes
- EnsureActiveLicense: full child-role check via licenseAssignments().isActive()
- License model: add isActive() method, fix fillable order, expires_at cast to date
- LicenseFactory: active/expired/inactive states
- routes/web.php: /dashboard with auth+license middleware, /lizenz-abgelaufen
- tests: EnsureActiveLicenseTest (3 tests — block/allow/teacher bypass)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 05:16:06 +02:00
Boban Blaskovic a099f2a4dc feat(auth): HasRole middleware with OR-semantics
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 01:41:10 +02:00
Boban Blaskovic 986f2afcff fix(tenant): forceDelete guard, hasRole eager-load, write-path test, migration timestamps
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 01:07:26 +02:00
Boban Blaskovic 1709f0f171 feat(models): Tenant, User, Role, ParentChild pivot + factories with withRole/withLicense
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 00:54:07 +02:00
Boban Blaskovic af49f091f5 feat(tenant): HasUuid + TenantScope (null-user default-deny) + BelongsToTenant
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 00:53:10 +02:00
Boban Blaskovic fe3b8d904f feat(testing): Pest v3 + Dusk + phpunit.xml.dist SESSION overrides + laravel/reverb
Installed pestphp/pest v4.7, pestphp/pest-plugin-laravel v4.1, laravel/dusk v8.6,
and laravel/reverb v1.10. Added phpunit.xml.dist and updated phpunit.xml with required
SESSION_SECURE_COOKIE=false, SESSION_DOMAIN=null, DB_CONNECTION=mysql overrides.
Created Browser/Smoke/AppReachableTest.php Dusk smoke test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 00:32:10 +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