Viewing file: RegisterController.php (3.47 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Auth\User;
use App\{Helpers\EmailHelper, Http\Requests\UserRequest, Http\Controllers\Controller, Models\VerifyEmail, Repositories\Front\UserRepository}; use App\Models\User; use App\Models\Setting; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Session;
class RegisterController extends Controller {
/** * Constructor Method. * * Setting Authentication * * @param \App\Repositories\Back\UserRepository $repository * */ public function __construct(UserRepository $repository) { $this->repository = $repository; $setting = Setting::first(); if($setting->recaptcha == 1){ Config::set('captcha.sitekey', $setting->google_recaptcha_site_key); Config::set('captcha.secret', $setting->google_recaptcha_secret_key); } }
public function showForm() { return view('user.auth.register'); }
public function getCode(Request $request){
if($request->email){
$pre_user=User::where('email', $request->email)->first(); if($pre_user){ return response()->json(['status'=>'failed', 'message'=>__('This email already taken, try new one')]); }
$randomNumber = rand(100000, 9999999);
VerifyEmail::where('email', $request->email)->delete();
$newVerify=new VerifyEmail(); $newVerify->email=$request->email; $newVerify->token=$randomNumber; $newVerify->save();
$mailData = [ 'to' => $request->email, 'type' => 'Verification Code', 'body' => __('Your Email Verification Code is:') . ' ' . $randomNumber, 'subject' => __('Verification Code'), ]; $emailHelper = new EmailHelper(); $emailHelper->sendCustomMail($mailData);
return response()->json(['status'=>'success', 'message'=>__('Verification code has been sent.')]); }
return response()->json(['status'=>'failed', 'message'=>__('Something went wrong. Try again after some time.')]);
}
public function register(UserRequest $request) { $request->validate([ 'email' => 'required|email|unique:users,email' ]);
if(!$request->code){ return redirect()->back()->withErrors(['error' => __('Please enter verification code')]); }
$checkVerification=VerifyEmail::where('token', $request->code)->first(); if(!$checkVerification){ return redirect()->back()->withErrors(['error'=>__('Invalid verification code')]); }
$this->repository->register($request); // Session::flash('success',__('Account Register Successfully please login'));
VerifyEmail::where('email', $request->email)->delete();
return redirect()->route('user.register.complete')->with('success', __('Account Register Successfully please login')); }
public function register_complete(){ return view('front.thank_you'); }
public function verify($token) { $user = User::where('email_token',$token)->first(); if($user){ Auth::login($user); return redirect(route('user.dashboard')); }else{ return redirect(route('user.login')); } }
}
|