/**
  * Create a reminders code for the given user
  * @param  \Modules\User\Repositories\UserRepository $user
  * @return mixed
  */
 public function createReminderCode($user)
 {
     $reminder = Reminder::exists($user) ?: Reminder::create($user);
     return $reminder->code;
 }
 public function postPassword(Request $request)
 {
     $this->validate($request, ['email' => 'required|email']);
     $user = Sentinel::findByCredentials(['email' => $request->input('email')]);
     $reminder = Reminder::create($user);
     Mail::send(['text' => 'emails.password'], compact('user', 'reminder'), function ($message) use($user) {
         $message->from('*****@*****.**', 'Kehet')->to($user->email, $user->first_name . ' ' . $user->last_name)->subject('Your password was reseted');
     });
     return redirect()->route('auth.password.reset', ['email' => $user->email]);
 }
 /**
  * post forget password metod
  *
  * @param   ForgetPasswordRequest     $request
  * @return  Redirector
  * @throw   ForgetPasswordException
  */
 public function postForgetPassword(ForgetPasswordRequest $request)
 {
     try {
         $user = Sentinel::findByCredentials(['login' => $request->input('email')]);
         if (is_null($user)) {
             throw new ForgetPasswordException($request->all());
         }
         $datas = ['user' => $user, 'reminder' => Reminder::create($user)];
         $subject = $this->subject;
         Mail::queue(config('laravel-user-module.views.email.forget_password'), $datas, function ($message) use($user, $subject) {
             $message->to($user->email, $user->fullname)->subject($subject);
         });
         // event fire
         event(new PasswordResetMailSend($request->all()));
         Flash::success(trans('laravel-user-module::auth.forget_password.success', ['name' => $user->first_name, 'email' => $user->email]));
         return redirect(lmbRoute('getLogin'));
     } catch (ForgetPasswordException $e) {
         Flash::error(trans('laravel-user-module::auth.forget_password.fail', ['email' => $request->input('email')]));
         // event fire
         event(new ForgetPasswordFail($e->getDatas()));
         return redirect(lmbRoute('getForgetPassword'))->withInput();
     }
 }
 public static function generarActivationReminder($user, $metodo)
 {
     list($object, $code, $view, $msg) = [null, null, null, null];
     if ($metodo == 'activation') {
         $object = Activation::create($user);
         $code = $object->code;
         $view = 'emails.activate';
         $msg = 'auth.notemailactivate';
     } else {
         $object = Reminder::create($user);
         $code = $object->code;
         $view = 'emails.reminder';
         $msg = 'auth.notemailreminder';
     }
     self::$instance = !self::$instance ? new self() : self::$instance;
     $sent = Mail::send($view, ['user' => $user, 'code' => $code], function (Message $message) use($user, $metodo) {
         $message->to($user->email, $user->first_name . ' ' . $user->last_name)->subject(self::$instance->getEmailSubject($metodo));
     });
     $retorno = $sent === 0 ? false : true;
     return $retorno === true ? false : redirect('login')->with('error', trans($msg));
 }