feat(api): registration auth, account creation, check-email & email notifications
- Add POST /public/check-email endpoint with rate limiting (10/min)
- Create user accounts during volunteer registration (new or returning)
- Returning volunteers authenticate with existing password
- Add password validation to VolunteerRegistrationRequest
- Normalize emails to lowercase throughout registration flow
- Handle race condition on duplicate accounts gracefully
- Create RegistrationConfirmationMail, RegistrationApprovedMail, RegistrationRejectedMail
- Wire approval/rejection emails into PersonController
- Add POST persons/{person}/reject endpoint
- Trigger TagSyncService on registration and approval
- Add CheckEmailTest, PersonApprovalEmailTest, extend VolunteerRegistrationTest
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
14
api/resources/views/emails/registration-approved.blade.php
Normal file
14
api/resources/views/emails/registration-approved.blade.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<x-mail::message>
|
||||
# Goed nieuws, {{ $personName }}!
|
||||
|
||||
Goed nieuws! Je bent goedgekeurd als vrijwilliger voor **{{ $eventName }}**.
|
||||
|
||||
Log in op het portaal om je shifts te bekijken en te claimen.
|
||||
|
||||
<x-mail::button :url="$portalUrl">
|
||||
Naar het portaal
|
||||
</x-mail::button>
|
||||
|
||||
Met vriendelijke groet,<br>
|
||||
{{ config('app.name') }}
|
||||
</x-mail::message>
|
||||
@@ -0,0 +1,19 @@
|
||||
<x-mail::message>
|
||||
# Bedankt voor je aanmelding, {{ $personName }}!
|
||||
|
||||
Bedankt voor je aanmelding als vrijwilliger voor **{{ $eventName }}**!
|
||||
|
||||
Je registratie wordt beoordeeld door de organisatie. Je ontvangt een e-mail zodra je aanmelding is verwerkt.
|
||||
|
||||
Je kunt inloggen op het vrijwilligersportaal om je status te volgen.
|
||||
|
||||
<x-mail::button :url="$portalUrl">
|
||||
Naar het portaal
|
||||
</x-mail::button>
|
||||
|
||||
**Evenement:** {{ $eventName }}<br>
|
||||
**Datum:** {{ $startDate }} t/m {{ $endDate }}
|
||||
|
||||
Met vriendelijke groet,<br>
|
||||
{{ config('app.name') }}
|
||||
</x-mail::message>
|
||||
14
api/resources/views/emails/registration-rejected.blade.php
Normal file
14
api/resources/views/emails/registration-rejected.blade.php
Normal file
@@ -0,0 +1,14 @@
|
||||
<x-mail::message>
|
||||
# Update over je aanmelding, {{ $personName }}
|
||||
|
||||
Helaas hebben we je aanmelding voor **{{ $eventName }}** niet kunnen goedkeuren.
|
||||
|
||||
@if($reason)
|
||||
**Reden:** {{ $reason }}
|
||||
@endif
|
||||
|
||||
Neem contact op met de organisatie als je vragen hebt.
|
||||
|
||||
Met vriendelijke groet,<br>
|
||||
{{ config('app.name') }}
|
||||
</x-mail::message>
|
||||
Reference in New Issue
Block a user