Вход Регистрация
Файл: vendor/laravel/ui/auth-backend/SendsPasswordResetEmails.php
Строк: 141
<?php

namespace IlluminateFoundationAuth;

use 
IlluminateHttpJsonResponse;
use 
IlluminateHttpRequest;
use 
IlluminateSupportFacadesPassword;
use 
IlluminateValidationValidationException;

trait 
SendsPasswordResetEmails
{
    
/**
     * Display the form to request a password reset link.
     *
     * @return IlluminateViewView
     */
    
public function showLinkRequestForm()
    {
        return 
view('auth.passwords.email');
    }

    
/**
     * Send a reset link to the given user.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpRedirectResponse|IlluminateHttpJsonResponse
     */
    
public function sendResetLinkEmail(Request $request)
    {
        
$this->validateEmail($request);

        
// We will send the password reset link to this user. Once we have attempted
        // to send the link, we will examine the response then see the message we
        // need to show to the user. Finally, we'll send out a proper response.
        
$response $this->broker()->sendResetLink(
            
$this->credentials($request)
        );

        return 
$response == Password::RESET_LINK_SENT
                    
$this->sendResetLinkResponse($request$response)
                    : 
$this->sendResetLinkFailedResponse($request$response);
    }

    
/**
     * Validate the email for the given request.
     *
     * @param  IlluminateHttpRequest  $request
     * @return void
     */
    
protected function validateEmail(Request $request)
    {
        
$request->validate(['email' => 'required|email']);
    }

    
/**
     * Get the needed authentication credentials from the request.
     *
     * @param  IlluminateHttpRequest  $request
     * @return array
     */
    
protected function credentials(Request $request)
    {
        return 
$request->only('email');
    }

    
/**
     * Get the response for a successful password reset link.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  string  $response
     * @return IlluminateHttpRedirectResponse|IlluminateHttpJsonResponse
     */
    
protected function sendResetLinkResponse(Request $request$response)
    {
        return 
$request->wantsJson()
                    ? new 
JsonResponse(['message' => trans($response)], 200)
                    : 
back()->with('status'trans($response));
    }

    
/**
     * Get the response for a failed password reset link.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  string  $response
     * @return IlluminateHttpRedirectResponse
     *
     * @throws IlluminateValidationValidationException
     */
    
protected function sendResetLinkFailedResponse(Request $request$response)
    {
        if (
$request->wantsJson()) {
            throw 
ValidationException::withMessages([
                
'email' => [trans($response)],
            ]);
        }

        return 
back()
                ->
withInput($request->only('email'))
                ->
withErrors(['email' => trans($response)]);
    }

    
/**
     * Get the broker to be used during password reset.
     *
     * @return IlluminateContractsAuthPasswordBroker
     */
    
public function broker()
    {
        return 
Password::broker();
    }
}
Онлайн: 1
Реклама