67 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace Modules\Auth\Components;
 | 
						|
 | 
						|
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Illuminate\Validation\ValidationException;
 | 
						|
use Livewire\Attributes\Layout;
 | 
						|
use Livewire\Component;
 | 
						|
 | 
						|
class PasswordReset extends Component
 | 
						|
{
 | 
						|
 | 
						|
    use SendsPasswordResetEmails;
 | 
						|
 | 
						|
    public string $email = '';
 | 
						|
 | 
						|
    protected function validateEmail(Request $request)
 | 
						|
    {
 | 
						|
        $this->validate([
 | 
						|
            'email' => 'required|max:255|string|email',
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    protected function sendResetLinkFailedResponse(Request $request, $response)
 | 
						|
    {
 | 
						|
        throw ValidationException::withMessages([
 | 
						|
            'email' => [trans($response)],
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
 | 
						|
    protected function credentials(Request $request)
 | 
						|
    {
 | 
						|
        return ['email' => $this->email];
 | 
						|
    }
 | 
						|
 | 
						|
    public function submit()
 | 
						|
    {
 | 
						|
        $this->sendResetLinkEmail(request());
 | 
						|
        $this->dispatch('success', 'Du hast weitere Instruktionen per E-Mail erhalten.');
 | 
						|
    }
 | 
						|
 | 
						|
    #[Layout('components.layouts.full')]
 | 
						|
    public function render(): string
 | 
						|
    {
 | 
						|
        return <<<'HTML'
 | 
						|
            <x-page::full heading="Passwort vergessen" title="Passwort vergessen">
 | 
						|
                <form wire:submit.prevent="submit">
 | 
						|
                    <div class="grid gap-5">
 | 
						|
                        <span class="text-gray-500 text-sm"
 | 
						|
                            >Hier kannst du dein Passwort zurücksetzen.<br />
 | 
						|
                            Gebe dafür die E-Mail-Adresse deines Benutzerkontos ein.<br />
 | 
						|
                            Anschließend bekommst du eine E-Mail<br />
 | 
						|
                            mit weiteren Anweisungen.</span
 | 
						|
                        >
 | 
						|
                        <x-form::text name="email" wire:model="email" label="E-Mail-Adresse"></x-form::text>
 | 
						|
                        <x-ui::button type="submit">Passwort zurücksetzen</x-ui::button>
 | 
						|
                        <div class="flex justify-center">
 | 
						|
                            <a href="/login" class="text-gray-500 text-sm hover:text-gray-300">Zurück zum Login</a>
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                </form>
 | 
						|
            </x-page::full>
 | 
						|
        HTML;
 | 
						|
    }
 | 
						|
}
 |