Viewing file: ResetPassword.php (3.41 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Illuminate\Auth\Notifications;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; use Illuminate\Support\Facades\Lang;
class ResetPassword extends Notification { /** * The password reset token. * * @var string */ public $token;
/** * The callback that should be used to create the reset password URL. * * @var (\Closure(mixed, string): string)|null */ public static $createUrlCallback;
/** * The callback that should be used to build the mail message. * * @var (\Closure(mixed, string): \Illuminate\Notifications\Messages\MailMessage)|null */ public static $toMailCallback;
/** * Create a notification instance. * * @param string $token * @return void */ public function __construct($token) { $this->token = $token; }
/** * Get the notification's channels. * * @param mixed $notifiable * @return array|string */ public function via($notifiable) { return ['mail']; }
/** * Build the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail($notifiable) { if (static::$toMailCallback) { return call_user_func(static::$toMailCallback, $notifiable, $this->token); }
return $this->buildMailMessage($this->resetUrl($notifiable)); }
/** * Get the reset password notification mail message for the given URL. * * @param string $url * @return \Illuminate\Notifications\Messages\MailMessage */ protected function buildMailMessage($url) { return (new MailMessage) ->subject(Lang::get('Reset Password Notification')) ->line(Lang::get('You are receiving this email because we received a password reset request for your account.')) ->action(Lang::get('Reset Password'), $url) ->line(Lang::get('This password reset link will expire in :count minutes.', ['count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')])) ->line(Lang::get('If you did not request a password reset, no further action is required.')); }
/** * Get the reset URL for the given notifiable. * * @param mixed $notifiable * @return string */ protected function resetUrl($notifiable) { if (static::$createUrlCallback) { return call_user_func(static::$createUrlCallback, $notifiable, $this->token); }
return url(route('password.reset', [ 'token' => $this->token, 'email' => $notifiable->getEmailForPasswordReset(), ], false)); }
/** * Set a callback that should be used when creating the reset password button URL. * * @param \Closure(mixed, string): string $callback * @return void */ public static function createUrlUsing($callback) { static::$createUrlCallback = $callback; }
/** * Set a callback that should be used when building the notification mail message. * * @param \Closure(mixed, string): \Illuminate\Notifications\Messages\MailMessage $callback * @return void */ public static function toMailUsing($callback) { static::$toMailCallback = $callback; } }
|