Edit File: ProfileController.php
<?php namespace App\Http\Controllers\DelegatesDashboard; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Traits\GeneralTrait; use App\Traits\ApiTrait; use App\Traits\Uploadable; use App\Models\User; use App\Models\Nationality; use App\Models\Country; use App\Models\Region; use App\Models\City; use App\Models\DelegateCompany; use Illuminate\Support\Facades\Hash; use Illuminate\Validation\Rule; use App\Http\Requests\DelegatesDashboard\UpdateProfileRequest; use App\Http\Requests\DelegatesDashboard\UpdatePasswordRequest; use Session; use Validator; use Auth; class ProfileController extends Controller { // use GeneralTrait, Uploadable,ApiTrait; public function showProfile(){ $user=Auth::user(); $cities=City::all(); $keys=Country::get(); return view('delegates_dashboard.profile.show',compact('keys','user','cities')); } #update profile public function updateProfile(UpdateProfileRequest $request){ $user=Auth::user(); $data = $request->validated(); $has_changed_phone = 'false'; $filteredPhone = User::cleanPhone($data['phone']); $data['phone'] = $filteredPhone['phone']; $data['country_key'] = $filteredPhone['country_key']; if($data['phone'] !=$user->phone){ $user->changed_phone = $data['phone']; $has_changed_phone = 'true'; } $user->sendVerificationCode($has_changed_phone); $user->name=$data['name']; $user->email=$data['email']; $user->country_key=$data['country_key']; if($request->avatar){ $user->avatar=$data['avatar']; } $user->update(); $company=$user->delegateCompany; if($company){ $company->commercial_number=$data['commercial_number']; $company->register_link=$data['register_link']; $company->city_id =$data['city_id']; $company->update(); } if( $has_changed_phone=='true'){ return response()->json(['key'=>'success','msg'=> trans('dashboard.alerts.updated_successfully'),'url'=>route('delegates_dashboard.getPhoneActivation')]); } return response()->json(['key'=>'success','msg'=> trans('dashboard.alerts.updated_successfully'),'url'=>route('delegates_dashboard.showProfile')]); } public function getPhoneActivation() { return view('delegates_dashboard.profile.update_phone'); } public function changedPhoneActivation(Request $request) { $validator = Validator::make($request->all(), [ 'code' => 'required' ]); if ($validator->passes()) { $user = Auth::user(); $codeArr = $request['code']; $code = implode("", $codeArr); if(strlen($code) == 0){ $msg = Session::has('lang') && Session::get('lang') == 'en' ? 'verfication code is required.' : 'كود التحقق مطلوب.'; return response()->json([ 'key' => 'fail', 'msg' => $msg ]); } if ($code !== $user->code) { $msg = Session::has('lang') && Session::get('lang') == 'en' ? 'verfication code is wrong.' : 'كود التحقق غير صحيح.'; return response()->json([ 'key' => 'fail', 'msg' => $msg ]); } $user->confirmChangePhone(); return response()->json(['key'=>'success','msg'=> trans('dashboard.alerts.updated_successfully'),'url'=>route('delegates_dashboard.showProfile')]); } else { foreach ((array)$validator->errors() as $value) { if (isset($value['code'])) { $msg = Session::has('lang') && Session::get('lang') == 'en' ? 'verfication code is required.' : 'كود التحقق مطلوب.'; return response()->json([ 'key' => 'fail', 'msg' => $msg ]); } else { $msg = Session::has('lang') && Session::get('lang') == 'en' ? 'something went wrong.' : 'حدث خطأ ما.'; } } } } #get edit password view public function get_edit_password(){ return view('delegates_dashboard.profile.edit_password'); } #update password public function update_password(Request $request){ $user=Auth::user(); if (Hash::check($request['old_password'], $user->password)) { $user->update(['password' => $request['password']]); } else { $msg = __('validation.password_confirmed'); return response()->json([ 'key' => 'fail', 'msg' => $msg, ]); } $msg = trans('auth.password_changed'); $url = route('delegates_dashboard.showProfile'); return response()->json([ 'key' => 'success', 'msg' => $msg , 'url' => $url ]); } }
Back to File Manager