Viewing File: /home/ubuntu/shop-website-base/app/Http/Controllers/Auth/UserRegisterController.php
<?php
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use App\Models\User;
use DB, Setting,Auth, Validator, Exception;
class UserRegisterController extends Controller
{
public function __construct() {
$this->middleware('guest:user');
}
public function showRegisterForm() {
return view('user.auth.register');
}
public function register(Request $request) {
try{
DB::begintransaction();
$validator = Validator::make( $request->all(), [
'name' => 'required|min:2|max:100',
'email' => '',
'mobile' => 'required|digits_between:4,16|unique:users,mobile',
'password' => 'required|min:6',
]);
if(is_numeric($request->get('mobile'))){
$validate = ['mobile'=>$request->get('mobile'),'password'=>$request->get('password'),'status'=>USER_APPROVED];
}
elseif (filter_var($request->get('email'), FILTER_VALIDATE_EMAIL)) {
$validate = ['email' => $request->get('email'), 'password'=>$request->get('password'),'status'=>USER_APPROVED];
}
if(isset($validate)){
if (Auth::guard('user')->attempt($validate, $request->remember)) {
if(Auth::guard('user')->check()) {
$user = User::find(Auth::guard('user')->user()->id);
\Auth::guard('user')->login($user);
// return redirect()->route(url()->previous());
}
}
}
if($request->email){
$validator = Validator::make( $request->all(), ['email' => 'unique:users,email']);
}
if($validator->fails()) {
$error = implode(',', $validator->messages()->all());
throw new Exception($error, 101);
}
$user = New User;
$user->name = $request->name;
$user->first_name = $user->last_name ='';
$user->email = $request->email ?? '';
$user->status = USER_APPROVED;
$user->mobile = $request->mobile;
$user->login_by = 'manual';
$user->password = Hash::make($request->password);
$user->timezone = $request->has('timezone') ? $request->timezone : 'Asia/Kolkata';
if($user->save()) {
$email_data['subject'] = tr('user_welcome_title').' '.Setting::get('site_name');
$email_data['page'] = "emails.users.welcome";
$email_data['data'] = $user;
$email_data['email'] = $user->email;
$email_data['name'] = $user->email;
$email_data['verification_code'] = $user->verification_code;
$this->dispatch(new \App\Jobs\SendEmailJob($email_data));
DB::commit();
\Auth::guard('user')->login($user);
// if successful, then redirect to their intended location
return redirect()->route('user.index')->with(['profile'=>$user, 'flash_success'=>tr('user_registered_successfully' , $request->name)]);
}
throw new Exception(tr('user_registered_failed'), 101);
} catch (Exception $e) {
DB::rollback();
return redirect()->back()->withInput()->with('flash_error', $e->getMessage());
}
}
}
Back to Directory
File Manager