<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Mail\AccountSuccessfulVerifiedMail;
use App\Mail\PreApprovalAdminAccount;
use Illuminate\Foundation\Auth\VerifiesEmails;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\OTPVerificationController;
use Auth;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
class VerificationController extends Controller
{
/*
|--------------------------------------------------------------------------
| Email Verification Controller
|--------------------------------------------------------------------------
|
| This controller is responsible for handling email verification for any
| user that recently registered with the application. Emails may also
| be re-sent if the user didn't receive the original email message.
|
*/
public function verify(Request $request, $id, $hash)
{
// Aquí debes implementar la lógica para verificar el token y marcar el correo electrónico como verificado
// Puedes usar el $id y $hash para buscar el usuario en la base de datos y realizar la verificación
// Ejemplo de implementación:
$user = User::find($id);
try {
if ($user && hash_equals($hash, $user->confirmation_code)) {
//por que existen dos uno email_verified_at lo pide el sistema y el otro
//correo_verified_at es para saber que el correo fue verificado, y
//este mismo se mostrara en perfil del usuario, por si se registro en numero no deveria salir este campo verificado
$user->email_verified_at = now();
$user->correo_verified_at = now();
$user->save();
// Inicia sesión al usuario si lo deseas
auth()->login($user);
/*if($user->user_type == 'seller'){
Mail::to($user->email)->send(new PreApprovalAdminAccount($user));
}*/
// Redirige al usuario a la página de éxito o a donde desees
return redirect()->route('shop.view.signup.complete');
}
}catch (\Exception $e) {
Log::error($e);
}
// Si la verificación falla, puedes redirigir al usuario a una página de error o mostrar un mensaje de error
return redirect()->route('shop.view.email.verification');
}
// use VerifiesEmails;
// /**
// * Where to redirect users after verification.
// *
// * @var string
// */
// protected $redirectTo = '/';
// /**
// * Create a new controller instance.
// *
// * @return void
// */
// public function __construct()
// {
// //$this->middleware('auth');
// $this->middleware('signed')->only('verify');
// $this->middleware('throttle:6,1')->only('verify', 'resend');
// }
// /**
// * Show the email verification notice.
// *
// * @param \Illuminate\Http\Request $request
// * @return \Illuminate\Http\Response
// */
public function show(Request $request)
{
$user = Auth::user();
///verificar que el usuario este verificado por numero o por correo, el sistema obligado pide que este verificado con este campo email_verified_at
if ($user && $user->user_type == 'customer') {
if (!empty($user->phone) && !$user->phone_verified_at) {
return redirect()->route('shop.view.phone.verification');
} elseif (!empty($user->email) && !$user->email_verified_at) {
return redirect()->route('shop.view.email.verification');
}
} elseif ($user && $user->user_type == 'seller') {
if (!empty($user->phone) && !$user->phone_verified_at) {
return redirect()->route('shop.view.phone.verification');
} elseif (!empty($user->email) && !$user->email_verified_at) {
return redirect()->route('shop.view.email.verification');
}
} elseif ($user && $user->user_type == 'workshop') {
if (!empty($user->phone) && !$user->phone_verified_at) {
return redirect()->route('shop.view.phone.verification');
} elseif (!empty($user->email) && !$user->email_verified_at) {
return redirect()->route('shop.view.email.verification');
}
}
}
// /**
// * Resend the email verification notification.
// *
// * @param \Illuminate\Http\Request $request
// * @return \Illuminate\Http\Response
// */
// public function resend(Request $request)
// {
// if ($request->user()->hasVerifiedEmail()) {
// return redirect($this->redirectPath());
// }
// $request->user()->sendEmailVerificationNotification();
// return back()->with('resent', true);
// }
// public function verification_confirmation($code){
// $user = User::where('verification_code', $code)->first();
// if($user != null){
// $user->email_verified_at = Carbon::now();
// $user->save();
// auth()->login($user, true);
// flash(translate('Your email has been verified successfully'))->success();
// }
// else {
// flash(translate('Sorry, we could not verifiy you. Please try again'))->error();
// }
// if($user->user_type == 'seller') {
// return redirect()->route('seller.dashboard');
// }
// return redirect()->route('dashboard');
// }
}
|