Edit File: AuthController.php
<?php namespace App\Http\Controllers\StoresDashboard; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Http\Requests\StoreStoreRequest; use App\Http\Requests\DelegatesDashboard\CodeRequest; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Str; use App\Traits\GeneralTrait; use App\Rules\CheckCodeRule; use App\Traits\ApiTrait; use App\Traits\Uploadable; use App\Models\Setting; use App\Models\StoreTiming; use App\Models\Category; use App\Models\User; use App\Models\Country; use App\Models\Store; use Session; use Auth; class AuthController extends Controller { // use ApiTrait, GeneralTrait, Uploadable; public function get_register() { Auth::logout(); $countries = Country::all(); return view( 'stores_dashboard.Auth.register', compact( 'countries' ) ); } public function post_register( Request $request ) { $validator = Validator::make( $request->all(), [ 'name' => 'required|string|min:3|max:191', 'country_key' => 'required', 'avatar' => 'required', 'phone' => [ 'required', 'min:9' ], 'email' => [ 'required', 'email' ], 'password' => 'required|confirmed|min:6', 'type' =>'nullable' ] ); if ( $validator->fails() ) { $msg = implode( ' , ', $validator->errors()->all() ); return response()->json( [ 'key'=>'fail', 'msg'=>$msg ] ); } $number = $this->convert2english( $request->phone ); $phone = $this->phoneValidate( $number ); $user = User::where( 'phone', $phone )->first(); if ( $user && !isset( $user->store ) ) { $user->forceDelete(); } $Unique = $this->is_unique( 'phone', $phone ); if ( User::where( 'email', $request[ 'email' ] )->first() ) { $msg = trans( 'auth.email_unique' ); return $this->failReturn( $msg ); } if ( $Unique ) { $msg = trans( 'auth.phone_unique' ); return $this->failReturn( $msg ); } $request[ 'password' ] = $request[ 'password' ]; $request[ 'remember_token' ] = Str::random( 10 ); $request[ 'phone' ] = $phone; $request[ 'status' ] = 'pending'; $request[ 'type' ] = 'store'; $request[ 'approve' ] = 'pending'; $user = User::create( $request->except( 'password_confirmation' ) ); Auth::login( $user ); $user->sendVerificationCode(); $msg = route( 'stores_dashboard.get_store_register' ); return response()->json( [ 'key' => 'success', 'msg' => $msg ] ); } public function get_account_activation() { return view( 'stores_dashboard.Auth.activate_store' ); } #submit activate phone public function post_account_activation( CodeRequest $request ) { $data = $request->validated(); $store = Auth::user(); $store->update( [ 'status'=> 'active', 'code' =>NULL ] ); $msg = route( 'stores_dashboard.get_success_page' ); if ( $store->approve == 'accept' ) { $msg = route( 'stores_dashboard.index' ); } else { $msg = route( 'stores_dashboard.get_success_page' ); } return $this->dashboardSuccessReturn( $msg ); } public function get_store_register() { $user = Auth::user(); $categories = Category::where( 'slug', '!=', 'free_delivery' )->get(); return view( 'stores_dashboard.Auth.store_register', compact( 'categories', 'user' ) ); } public function post_store_register( StoreStoreRequest $request ) { $user = Auth::user(); $data = $request->validated(); if ( $request->has( 'icon' ) ) { $data[ 'icon' ] = $this->uploadFile( $request->icon, 'stores', true, 250, null ); } if ( $request->has( 'cover' ) ) { $data[ 'cover' ] = $this->uploadFile( $request->cover, 'stores', true, 250, null ); } if ( $request->has( 'commercial_image' ) ) { $data[ 'commercial_image' ] = $this->uploadFile( $request->commercial_image, 'stores', true, 250, null ); } $data[ 'name' ] = [ 'ar' => $data[ 'name_ar' ], 'en' => $data[ 'name_en' ], ]; $data[ 'user_id' ] = Auth::user()->id; $store = Store::create( $data ); if ( $store ) { if ( $request[ 'days' ] ) { foreach ( $request[ 'days' ] as $key=>$ex ) { if ( $request[ 'from' ][ $key ] && $request[ 'to' ][ $key ] ) { $timing = new StoreTiming(); $timing->day = $request[ 'days' ][ $key ]; $timing->from = $request[ 'from' ][ $key ]; $timing->to = $request[ 'to' ][ $key ]; $timing->store_id = $store->id; $timing->save(); } } } } $url = route( 'stores_dashboard.get_account_activation' ); return response()->json( [ 'key' => 'success', 'url' => $url ] ); } public function get_login() { if ( auth()->check() ) { return redirect( '/' ); } $welcome_title = Session::has( 'lang' ) && Session::get( 'lang' ) == 'en' ? Setting::where( 'key', 'welcome_title_en' )->first()->value:Setting::where( 'key', 'welcome_title_ar' )->first()->value; $welcome_content = Session::has( 'lang' ) && Session::get( 'lang' ) == 'en' ? Setting::where( 'key', 'welcome_content_en' )->first()->value:Setting::where( 'key', 'welcome_content_ar' )->first()->value; return view( 'stores_dashboard.Auth.login', compact( 'welcome_title', 'welcome_content' ) ); } public function post_login( Request $request ) { $validator = Validator::make( $request->all(), [ 'phone' => 'required|numeric', 'password' => 'required', ] ); if ( $validator->fails() ) { $msg = implode( ' , ', $validator->errors()->all() ); return response()->json( [ 'key'=>'fail', 'msg'=>$msg ] ); } $number = $this->convert2english( $request->phone ); $phone = $this->phoneValidate( $number ); if ( Auth::attempt( [ 'phone' => $phone, 'password' => $request->password ] ) ) { $user = Auth::user(); if ( $user->type !== 'store' ) { $msg = trans( 'auth.wrong_credentials' ); return response()->json( [ 'key' => 'fail', 'msg' => $msg, ] ); } if ( $user->approve == 'refused' ) { $msg = trans( 'auth.you_are_refused_store' ); return response()->json( [ 'key' => 'fail', 'msg' => $msg, ] ); } if ( $user->block == 1 ) { $msg = trans( 'auth.blocked_store' ); return response()->json( [ 'key' => 'fail', 'msg' => $msg, ] ); } $msg = route( 'stores_dashboard.index' ); if ( $user->status == 'pending' ) { $user->sendVerificationCode(); } return response()->json( [ 'key' => 'success', 'msg' => $msg ] ); } else { $msg = trans( 'auth.wrong_credentials' ); return response()->json( [ 'key' => 'fail', 'msg' => $msg ] ); } } public function get_forget_password() { return view( 'stores_dashboard.Auth.forget' ); } public function post_forget_password( Request $request ) { $validator = Validator::make( $request->all(), [ 'phone' => 'required', ] ); if ( $validator->fails() ) { return $this->requestFailsReturn( $validator ); } $number = $this->convert2english( $request->phone ); $phone = $this->phoneValidate( $number ); $user = User::where( 'phone', $phone )->first(); if ( !$user ) { $msg = trans( 'auth.user_not_found' ); return $this->failMsg( $msg ); } $user->sendVerificationCode(); Session::put( 'forgotpassword', $user ); $msg = trans( 'auth.activation_code_sent' ); $url = route( 'stores_dashboard.get_reset_password' ); return response()->json( [ 'key' => 'success', 'url' => $url, 'msg' => $msg ] ); return $this->successMsg( $msg ); } public function get_reset_password() { if ( !Session::has( 'forgotpassword' ) ) { return redirect()->route( 'stores_dashboard.get_forget_password' ); } return view( 'stores_dashboard.Auth.reset' ); } public function reset_code_again() { if ( !Session::has( 'forgotpassword' ) ) { return redirect()->route( 'stores_dashboard.get_forget_password' ); } $user = Session::get( 'forgotpassword' ); $user->sendVerificationCode(); return response()->json( [ 'location' => route( 'stores_dashboard.get_reset_password' ), 'key' => 'success', 'msg' => awtTrans( 'تم اعاده ارسال الكود بنجاح' ) ] ); } public function post_reset_password( Request $request ) { // if ( !Session::has( 'forgotpassword' ) ) { // $msg = trans( 'auth.user_not_found' ); // $url = route( 'stores_dashboard.get_forget_password' ); // return response()->json( [ // 'key' => 'success', // 'msg' => $msg, // 'url' => $url // ] ); // } $codeArr = $request[ 'code' ]; $code = implode( '', $codeArr ); $validator = Validator::make( $request->all(), [ 'password_confirmation' => 'required|same:password', ] ); if ( $validator->fails() ) { return $this->requestFailsReturn( $validator ); } if ( !$code ) { $msg = trans( 'auth.required_code' ); return response()->json( [ 'key' => 'fail', 'msg' => $msg ] ); } if ( $user->code !== $code ) { $msg = trans( 'auth.false_code' ); return response()->json( [ 'key' => 'fail', 'msg' => $msg ] ); } $user->password = $request[ 'password' ]; $user->save(); $msg = trans( 'auth.password_changed' ); $url = route( 'stores_dashboard.get_login' ); return response()->json( [ 'key' => 'success', 'msg' => $msg, 'url' => $url ] ); } public function get_success_page() { return view( 'stores_dashboard.Auth.successfuly-sent' ); } public function get_confirmation_page() { $user = Auth::user(); if ( $user->store() ) { $store = Store::where( 'store_id', $user->id )->first(); if ( $store->join_request == 'true' ) { return view( 'stores_dashboard.index' ); } else { return view( 'stores_dashboard.index' ); } } return view( 'stores_dashboard.Auth.login' ); } public function logout() { Auth::logout(); return redirect()->route( 'stores_dashboard.get_login' ); } }
Back to File Manager