/** * 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]); } }
/** * 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]); }