예제 #1
0
 /**
  * Verifica se existe alguem e envia o e-mail de recuperação
  * @return Response
  */
 public function recoveryStart()
 {
     /**
      * Array contendo as regras de validacao
      * @var array
      */
     $rules = ['email' => 'required|email'];
     /**
      * Array contendo as mensagens de validacao
      * @var array
      */
     $messages = ['email.required' => Lang::get('forms.required', ['campo' => 'E-mail']), 'email.email' => Lang::get('forms.format', ['campo' => 'E-mail', 'formato' => '*****@*****.**'])];
     // Executa a validação
     $validator = Validator::make(Input::all(), $rules, $messages);
     // Se houver falhas na validação , redireciona e mostra os erros, se não, executa o processo de envio
     if ($validator->fails()) {
         return redirect()->back()->withInput(Input::get('email'))->withErrors($validator);
     } else {
         /**
          * Objeto com os dados do cadastro
          * @var object
          */
         $usuario = Usuarios::whereEmail(Input::get('email'))->first();
         if (sizeof($usuario) > 0) {
             $random = 'Lanche' . rand(0, 9999999999.0) . 'Perto' . date('Y-m-d H:i:s');
             $token = substr(Crypt::encrypt($random), 0, 100);
             $tokenExists = DB::select('select token,email FROM password_resets WHERE token = ? AND email = ?', [$token, Input::get('email')]);
             if (sizeof($tokenExists) > 0) {
                 $random = 'Lanche' . rand(0, 9999999999.0) . 'Perto' . date('Y-m-d H:i:s');
                 $token = substr(Crypt::encrypt($random), 0, 100);
             }
             Usuarios::where('id', $usuario->id)->update(['remember_token' => $token]);
             $mail = new PHPMailer();
             $mail->IsSMTP();
             $mail->CharSet = 'UTF-8';
             $mail->IsHTML(true);
             // Ativar SMTP
             $mail->SMTPDebug = 0;
             // Debugar: 1 = erros e mensagens, 2 = mensagens apenas
             $mail->SMTPAuth = true;
             // Autenticação ativada
             $mail->SMTPSecure = 'tls';
             // SSL REQUERIDO pelo GMail
             $mail->Host = 'smtp.gmail.com';
             // SMTP utilizado
             $mail->Port = 587;
             // A porta 587 deverá estar aberta em seu servidor
             $mail->Username = '******';
             $mail->Password = '******';
             $mail->SetFrom('*****@*****.**', 'Lanche Perto');
             $mail->Subject = Lang::get('emails.recovery.subject');
             $mail->Body = 'Olá ' . $usuario->nome . ' para alterar sua senha <a href="' . asset('recovery/change/' . $token) . '">Clique aqui</a>';
             $mail->AddAddress($usuario->email);
             if (!$mail->Send()) {
                 return Redirect::to('/login')->withErrors([Lang::get('frases.email.recuperacao.falha')]);
             } else {
                 return Redirect::to('/login')->with('message', Lang::get('frases.email.recuperacao.enviado'));
             }
             return Redirect::route('usuarios.index');
         } else {
             return Redirect::to('/login')->withErrors([Lang::get('frases.erro.no.login')]);
         }
         //return redirect()->route('usuarios.index', ['user' => 1]);
     }
 }
예제 #2
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update(\App\Http\Requests\UsuariosRequest $request, $id)
 {
     if (Input::get('senha') != '') {
         Usuarios::where('id', $id)->update(['nome' => Input::get('nome'), 'email' => Input::get('email'), 'senha' => Hash::make(Input::get('senha')), 'empresa' => Input::get('empresa'), 'ativo' => Input::get('ativo')]);
     } else {
         Usuarios::where('id', $id)->update(['nome' => Input::get('nome'), 'email' => Input::get('email'), 'empresa' => Input::get('empresa'), 'ativo' => Input::get('ativo')]);
     }
     return Redirect::route('usuarios.index', ['update' => true]);
 }