feat: password reset, email change with verification, and password change

Password reset: multi-app support with custom notification linking to correct
frontend (app/portal/admin). Email change: self-service with password
confirmation and admin-initiated, both sending verification to new address
with 24h expiry. Confirmation sent to old email on completion. Password
change: authenticated endpoint revoking other sessions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-14 15:38:54 +02:00
parent 53100d4f6d
commit 836cffa232
42 changed files with 2643 additions and 67 deletions

View File

@@ -0,0 +1,12 @@
@component('mail::message')
# Je e-mailadres is gewijzigd
Hallo {{ $userName }},
Het e-mailadres van je Crewli-account is zojuist gewijzigd naar **{{ $newEmail }}**.
Als je deze wijziging niet hebt aangevraagd, neem dan onmiddellijk contact met ons op.
Groeten,<br>
Crewli
@endcomponent

View File

@@ -0,0 +1,22 @@
@component('mail::message')
# Bevestig je nieuwe e-mailadres
Hallo {{ $userName }},
@if($isSelfChange)
Je hebt verzocht om je e-mailadres te wijzigen naar dit adres.
@else
{{ $requestedByName }} heeft verzocht om je e-mailadres te wijzigen naar dit adres.
@endif
Klik op de knop hieronder om te bevestigen dat dit e-mailadres van jou is.
@component('mail::button', ['url' => $verifyUrl])
E-mailadres bevestigen
@endcomponent
Deze link is 24 uur geldig. Als je dit niet hebt aangevraagd, kun je deze e-mail negeren.
Groeten,<br>
Crewli
@endcomponent