PATH:
home
/
lab2454c
/
.trash
/
core
/
app
/
Http
/
Controllers
/
Auth
<?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Models\AdminNotification; use App\Models\GeneralSetting; use App\Models\User; use App\Models\UserLogin; use Illuminate\Auth\Events\Registered; use Illuminate\Foundation\Auth\RegistersUsers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rules\Password; use App\Models\Category; use App\Models\Subcategory; class RegisterController extends Controller { /* |-------------------------------------------------------------------------- | Register Controller |-------------------------------------------------------------------------- | | This controller handles the registration of new users as well as their | validation and creation. By default this controller uses a trait to | provide this functionality without requiring any additional code. | */ use RegistersUsers; /** * Create a new controller instance. * * @return void */ public function __construct() { $this->middleware('guest'); $this->middleware('regStatus')->except('registrationNotAllowed'); $this->activeTemplate = activeTemplate(); } public function showRegistrationForm() { $pageTitle = "Sign Up"; $users = User::where('status', 1)->orderBy('id', 'DESC')->limit(4)->get(); $info = json_decode(json_encode(getIpInfo()), true); $mobile_code = @implode(',', $info['code']); $countries = json_decode(file_get_contents(resource_path('views/partials/country.json'))); $sports = Category::where('status', 1)->get(); return view($this->activeTemplate . 'user.auth.register', compact('pageTitle','mobile_code','countries', 'users', 'sports')); } /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { $general = GeneralSetting::first(); $password_validation = Password::min(6); if ($general->secure_password) { $password_validation = $password_validation->mixedCase()->numbers()->symbols()->uncompromised(); } $agree = 'nullable'; if ($general->agree) { $agree = 'required'; } $countryData = (array)json_decode(file_get_contents(resource_path('views/partials/country.json'))); $countryCodes = implode(',', array_keys($countryData)); $mobileCodes = implode(',',array_column($countryData, 'dial_code')); $countries = implode(',',array_column($countryData, 'country')); $validate = Validator::make($data, [ 'firstname' => 'sometimes|required|string|max:50', 'lastname' => 'sometimes|required|string|max:50', 'email' => 'required|string|email|max:90|unique:users', 'mobile' => 'required|string|regex:/^([0-9\s\-]*)$/|min:4|max:15|unique:users', 'password' => ['required','confirmed',$password_validation], 'username' => 'required|alpha_num|unique:users|min:6', 'captcha' => 'sometimes|required', 'mobile_code' => 'required|in:'.$mobileCodes, 'country_code' => 'required|in:'.$countryCodes, 'country' => 'required|in:'.$countries, 'agree' => $agree, 'type' => 'required|in:TEAM,USER', 'team_name' => 'nullable|required_if:type,==,TEAM|string|max:100|unique:subcategories,name', 'sport' => 'nullable|required_if:type,==,TEAM|integer', ]); return $validate; } public function register(Request $request) { $this->validator($request->all())->validate(); $exist = User::where('mobile',$request->mobile_code.$request->mobile)->first(); if ($exist) { $notify[] = ['error', 'The mobile number already exists']; return back()->withNotify($notify)->withInput(); } if (isset($request->captcha)) { if (!captchaVerify($request->captcha, $request->captcha_secret)) { $notify[] = ['error', "Invalid captcha"]; return back()->withNotify($notify)->withInput(); } } event(new Registered($user = $this->create($request->all()))); $this->guard()->login($user); return $this->registered($request, $user) ?: redirect($this->redirectPath()); } /** * Create a new user instance after a valid registration. * * @param array $data * @return \App\User */ protected function create(array $data) { $general = GeneralSetting::first(); $user = new User(); $user->firstname = isset($data['firstname']) ? $data['firstname'] : null; $user->lastname = isset($data['lastname']) ? $data['lastname'] : null; $user->email = strtolower(trim($data['email'])); $user->password = Hash::make($data['password']); $user->username = trim($data['username']); $user->country_code = $data['country_code']; $user->mobile = $data['mobile_code'].$data['mobile']; $user->address = [ 'address' => '', 'state' => '', 'zip' => '', 'country' => isset($data['country']) ? $data['country'] : null, 'city' => '' ]; $user->ev = $general->ev ? 0 : 1; $user->sv = $general->sv ? 0 : 1; $user->ts = 0; $user->tv = 1; $user->type = $data['type']; if ($data['type'] == 'TEAM') { //$user->team_name = isset($data['team_name']) ? $data['team_name'] : 'null'; $sport = Category::find($data['sport']); $team = Subcategory::firstOrCreate([ "name" => $data['team_name'], ]); $team->category()->associate($sport); $team->save(); $user->category()->associate($sport); $user->subCategory()->associate($team); $user->status = 0; } else{ $user->status = 1; } $user->save(); $adminNotification = new AdminNotification(); $adminNotification->user_id = $user->id; $adminNotification->title = 'New member registered'; $adminNotification->click_url = urlPath('admin.users.detail',$user->id); $adminNotification->save(); //Login Log Create $ip = $_SERVER["REMOTE_ADDR"]; $exist = UserLogin::where('user_ip',$ip)->first(); $userLogin = new UserLogin(); //Check exist or not if ($exist) { $userLogin->longitude = $exist->longitude; $userLogin->latitude = $exist->latitude; $userLogin->city = $exist->city; $userLogin->country_code = $exist->country_code; $userLogin->country = $exist->country; }else{ $info = json_decode(json_encode(getIpInfo()), true); $userLogin->longitude = @implode(',',$info['long']); $userLogin->latitude = @implode(',',$info['lat']); $userLogin->city = @implode(',',$info['city']); $userLogin->country_code = @implode(',',$info['code']); $userLogin->country = @implode(',', $info['country']); } $userAgent = osBrowser(); $userLogin->user_id = $user->id; $userLogin->user_ip = $ip; $userLogin->browser = @$userAgent['browser']; $userLogin->os = @$userAgent['os_platform']; $userLogin->save(); return $user; } public function checkUser(Request $request){ $exist['data'] = null; $exist['type'] = null; if ($request->email) { $exist['data'] = User::where('email',$request->email)->first(); $exist['type'] = 'email'; } if ($request->mobile) { $exist['data'] = User::where('mobile',$request->mobile)->first(); $exist['type'] = 'mobile'; } if ($request->username) { $exist['data'] = User::where('username',$request->username)->first(); $exist['type'] = 'username'; } return response($exist); } public function registered() { return redirect()->route('user.home'); } }
[+]
..
[-] ResetPasswordController.php
[edit]
[-] ForgotPasswordController.php
[edit]
[-] RegisterController.php
[edit]
[-] LoginController.php
[edit]