registrar usuario de tipo comprador, comente algunas cosas del codigo

This commit is contained in:
Jose Sanchez
2023-08-15 10:37:30 -04:00
parent 223db091b0
commit 31b2e896ad
38 changed files with 3718 additions and 649 deletions

View File

@@ -44,134 +44,134 @@ class RegisterController extends Controller
*
* @var string
*/
protected $redirectTo = '/';
// protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
// /**
// * Create a new controller instance.
// *
// * @return void
// */
// public function __construct()
// {
// $this->middleware('guest');
// }
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'password' => 'required|string|min:6|confirmed',
'g-recaptcha-response' => [
Rule::when(get_setting('google_recaptcha') == 1, ['required', new Recaptcha()], ['sometimes'])
]
]);
}
// /**
// * Get a validator for an incoming registration request.
// *
// * @param array $data
// * @return \Illuminate\Contracts\Validation\Validator
// */
// protected function validator(array $data)
// {
// return Validator::make($data, [
// 'name' => 'required|string|max:255',
// 'password' => 'required|string|min:6|confirmed',
// 'g-recaptcha-response' => [
// Rule::when(get_setting('google_recaptcha') == 1, ['required', new Recaptcha()], ['sometimes'])
// ]
// ]);
// }
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\Models\User
*/
protected function create(array $data)
{
if (filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
else {
if (addon_is_activated('otp_system')){
$user = User::create([
'name' => $data['name'],
'phone' => '+'.$data['country_code'].$data['phone'],
'password' => Hash::make($data['password']),
'verification_code' => rand(100000, 999999)
]);
// /**
// * Create a new user instance after a valid registration.
// *
// * @param array $data
// * @return \App\Models\User
// */
// protected function create(array $data)
// {
// if (filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
// $user = User::create([
// 'name' => $data['name'],
// 'email' => $data['email'],
// 'password' => Hash::make($data['password']),
// ]);
// }
// else {
// if (addon_is_activated('otp_system')){
// $user = User::create([
// 'name' => $data['name'],
// 'phone' => '+'.$data['country_code'].$data['phone'],
// 'password' => Hash::make($data['password']),
// 'verification_code' => rand(100000, 999999)
// ]);
$otpController = new OTPVerificationController;
$otpController->send_code($user);
}
}
// $otpController = new OTPVerificationController;
// $otpController->send_code($user);
// }
// }
if(session('temp_user_id') != null){
Cart::where('temp_user_id', session('temp_user_id'))
->update([
'user_id' => $user->id,
'temp_user_id' => null
]);
// if(session('temp_user_id') != null){
// Cart::where('temp_user_id', session('temp_user_id'))
// ->update([
// 'user_id' => $user->id,
// 'temp_user_id' => null
// ]);
Session::forget('temp_user_id');
}
// Session::forget('temp_user_id');
// }
if(Cookie::has('referral_code')){
$referral_code = Cookie::get('referral_code');
$referred_by_user = User::where('referral_code', $referral_code)->first();
if($referred_by_user != null){
$user->referred_by = $referred_by_user->id;
$user->save();
}
}
// if(Cookie::has('referral_code')){
// $referral_code = Cookie::get('referral_code');
// $referred_by_user = User::where('referral_code', $referral_code)->first();
// if($referred_by_user != null){
// $user->referred_by = $referred_by_user->id;
// $user->save();
// }
// }
return $user;
}
// return $user;
// }
public function register(Request $request)
{
if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
if(User::where('email', $request->email)->first() != null){
flash(translate('Email or Phone already exists.'));
return back();
}
}
elseif (User::where('phone', '+'.$request->country_code.$request->phone)->first() != null) {
flash(translate('Phone already exists.'));
return back();
}
// public function register(Request $request)
// {
// if (filter_var($request->email, FILTER_VALIDATE_EMAIL)) {
// if(User::where('email', $request->email)->first() != null){
// flash(translate('Email or Phone already exists.'));
// return back();
// }
// }
// elseif (User::where('phone', '+'.$request->country_code.$request->phone)->first() != null) {
// flash(translate('Phone already exists.'));
// return back();
// }
$this->validator($request->all())->validate();
// $this->validator($request->all())->validate();
$user = $this->create($request->all());
// $user = $this->create($request->all());
$this->guard()->login($user);
// $this->guard()->login($user);
if($user->email != null){
if(BusinessSetting::where('type', 'email_verification')->first()->value != 1){
$user->email_verified_at = date('Y-m-d H:m:s');
$user->save();
flash(translate('Registration successful.'))->success();
}
else {
try {
$user->sendEmailVerificationNotification();
flash(translate('Registration successful. Please verify your email.'))->success();
} catch (\Throwable $th) {
$user->delete();
flash(translate('Registration failed. Please try again later.'))->error();
}
}
}
// if($user->email != null){
// if(BusinessSetting::where('type', 'email_verification')->first()->value != 1){
// $user->email_verified_at = date('Y-m-d H:m:s');
// $user->save();
// flash(translate('Registration successful.'))->success();
// }
// else {
// try {
// $user->sendEmailVerificationNotification();
// flash(translate('Registration successful. Please verify your email.'))->success();
// } catch (\Throwable $th) {
// $user->delete();
// flash(translate('Registration failed. Please try again later.'))->error();
// }
// }
// }
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
// return $this->registered($request, $user)
// ?: redirect($this->redirectPath());
// }
protected function registered(Request $request, $user)
{
if ($user->email == null) {
return redirect()->route('verification');
}elseif(session('link') != null){
return redirect(session('link'));
}else {
return redirect()->route('home');
}
}
// protected function registered(Request $request, $user)
// {
// if ($user->email == null) {
// return redirect()->route('verification');
// }elseif(session('link') != null){
// return redirect(session('link'));
// }else {
// return redirect()->route('home');
// }
// }
}

View File

@@ -8,95 +8,31 @@ use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Controllers\OTPVerificationController;
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.
|
*/
use VerifiesEmails;
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
/**
* Where to redirect users after verification.
*
* @var string
*/
protected $redirectTo = '/';
// Ejemplo de implementación:
$user = User::find($id);
/**
* 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');
if ($user && hash_equals($hash, $user->confirmation_code)) {
$user->email_verified_at = now();
$user->save();
// Inicia sesión al usuario si lo deseas
auth()->login($user);
// Redirige al usuario a la página de éxito o a donde desees
return redirect()->route('shop.view.signup.complete');
}
/**
* Show the email verification notice.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function show(Request $request)
{
if ($request->user()->email != null) {
return $request->user()->hasVerifiedEmail()
? redirect($this->redirectPath())
: view('auth.verify');
}
else {
$otpController = new OTPVerificationController;
$otpController->send_code($request->user());
return redirect()->route('verification');
}
}
// 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');
}
/**
* 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');
}
}
}