123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- namespace App\Notifications\Email;
- 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|null
- */
- public static $createUrlCallback;
- /**
- * The callback that should be used to build the mail message.
- *
- * @var \Closure|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);
- }
- if (static::$createUrlCallback) {
- $url = call_user_func(static::$createUrlCallback, $notifiable, $this->token);
- } else {
- $url = url(route('password.reset', [
- 'token' => $this->token,
- 'email' => $notifiable->getEmailForPasswordReset(),
- ], false));
- }
- return (new MailMessage)
- ->theme((app()->getLocale() == 'fa') ? 'rtl-theme' : 'default')
- ->greeting(Lang::get('mail.resetPassword.greeting'))
- ->salutation(Lang::get('mail.resetPassword.salutation'))
- ->subject(Lang::get('mail.resetPassword.subject'))
- ->line(Lang::get('mail.resetPassword.excerpt'))
- ->action(Lang::get('mail.resetPassword.button'), $url)
- ->line(Lang::get('mail.resetPassword.timeout', ['count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')]));
- }
- /**
- * Set a callback that should be used when creating the reset password button URL.
- *
- * @param \Closure $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 $callback
- * @return void
- */
- public static function toMailUsing($callback)
- {
- static::$toMailCallback = $callback;
- }
- }
|