user()->id); return view('Admin.Pages.manage_sub_admin.edit_admin_profile', compact('data')); } public function sendOtpOnMail(Request $request) { // dd($request->all()); $validator = validator::make($request->all(),['new_email'=>'required|unique:users,email'],['requreid'=>'Email field is required.','unique'=>'Email should be unique.']); $validateMessage = validationErrorMessage($validator); if($validateMessage) { return response()->json(['status'=>400,'message'=>$validateMessage]); } $OTP = rand(1000,9999); Mail::to($request->new_email)->send(new sendEmailOTP($OTP)); session()->forget(['email_update_otp','old_email','new_email']); session()->put('email_update_otp',$OTP); session()->put('old_email',$request->old_email); session()->put('new_email',$request->new_email); if(session()->has('email_update_otp') || session()->has('old_email') || session()->has('new_email')) { return response()->json(['status'=>200,'message'=>"OTP has been send to your mail."]); } return response()->json(['status'=>400,'message'=>"Error in sending OTP."]); } public function verifyEmailOtp(Request $request) { $otp = session()->get('email_update_otp'); $old_email = session()->get('old_email'); $new_email = session()->get('new_email'); // dd($new_email,$old_email); if(!$otp && !$old_email && !$new_email) { return response()->json(['status'=>400,'message'=>'Enter your email again.']); } if((int)$otp != (int)$request->email_otp) { return response()->json(['status'=>400,'message'=>'OTP not matched.']); } $updated = User::where('email',$old_email)->update(['email'=>$new_email]); if($updated) { return response()->json(['status'=>200,'message'=>'Email updated successfully']); } } public function getUsers(Request $request) { if ($request->ajax()) { $data = User::where(['role' => 0, 'status' => 1])->get(); // dd($data); return Datatables::of($data) ->addIndexColumn() ->addColumn('action', function ($row) { $actionBtn = 'Edit Delete'; return $actionBtn; }) ->rawColumns(['action']) // ->editColumn('name',function($row){ // return '
' . $row->name . '
'; // }) // ->editColumn('email',function($row){ // return '
' . $row->email . '
'; // }) // ->editColumn('password',function($row){ // return '
' . $row->password . '
'; // }) // ->addColumn('edit',function ($row){ // $email = $row->email; // $password = $row->password; // $editBtn = ' // // '; // return $editBtn; // }) // ->rawColumns(['name','email','password','edit']) ->make(true); } // return view('Admin.edit_admin_profile'); } public function editProfile(Request $request) { $validator = Validator::make($request->all(), [ 'update_id' => 'required', 'name' => [ 'required', // 'regex:/^[a-zA-Z\s]+$/', ], 'email' => [ 'required', // 'regex/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/', ], 'mobile_number' => [ 'required', 'min:10', 'max:12', // 'regex:regex:/^(\+\d{1,3}[- ]?)?\d{10,12}$/', ], 'profile_image' => [ 'mimes:jpeg,png,jpg,gif,svg', 'max:2048', ], ], [ 'required' => 'This :attribute field is required', 'mobile_number.min' => 'Mobile number should be minimum 10 digits', 'mobile_number.max' => 'Mobile number should be maxmium 12 digits', 'profile_image.mimes' => "Image accepts only jpeg,png,jpg,gif,svg", 'profile_image.max' => "Image size not more than 2mb", 'name.regex' => 'This :attribute contain only alphabets', 'email.regex' => 'Enter valid email address', 'mobile_number.regex' => 'Mobile number contain only digits', ]); $validationMessage = validationErrorMessage($validator); if ($validationMessage) { return response()->json( [ 'status' => 400, 'message' => $validationMessage ] ); } $uploadImage = $request->has('profile_image') ? $this->uploadProfileImage(Auth::user()->id, $request->profile_image) : Auth::user()->getRawOriginal('profile_image'); $data = User::where('id', Auth::user()->id)->update([ 'name' => $request->name, 'email' => $request->email, 'contact_number' => $request->mobile_number, 'profile_image' => $uploadImage, ]); if ($data) { return response()->json( [ 'status' => 200, 'message' => "Profile update successfull" ] ); } return response()->json( [ 'status' => 204, 'message' => 'Profile not updated, Something error!' ] ); } public function uploadProfileImage($id, $image) { $user = User::where('id', $id)->first(); if (\Storage::exists($user->profile_image)) { \Storage::delete($user->profile_image); } $fileName = time() . Auth::user()->id . '.' . $image->extension(); $image->move(public_path('/uploads/profile/img'), $fileName); return $fileName; } public function UpdatePassword(Request $request) { $validator = Validator::make($request->all(), [ 'current_password' => 'required', 'password' => ['required', 'min:8', 'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\x])(?=.*[!$#%@]).*$/', 'confirmed'] // 'confirm_password' => 'required_with:new_password|same:new_password|required', ], [ 'required' => 'The :attribute field is required', 'same' => 'The :attribute must contain the same password', 'min' => 'The :attribute field must be 8 characters minimum', 'regex' => 'The :attribute field must contain at least 1 uppercase letter and symbol and also a number', 'confirmed' => 'Password does not match' ]); $validationMessage = validationErrorMessage($validator); if ($validationMessage) { return response()->json(['status' => 400, 'message' => $validationMessage]); } $user = User::find(Auth::user()->id); if (Hash::check($request->current_password, $user->password)) { $updatePassword = User::where('id', $request->updateId)->update([ 'password' => bcrypt($request->password), ]); if ($updatePassword) { Session::flush(); \Auth::logout(); return response()->json(['status' => 200, 'message' => "Password update successfull"]); } else { return response()->json(['status' => 204, 'message' => 'Password not updated, Something error!']); } } return response()->json(['status' => 204, 'message' => 'Password not matched!']); } public function viewUsersProfile() { $check = checkSidebarAccess('update-user-password'); if (!$check) { abort(404); } $users = User::where(['role' => false, 'status' => true])->get(); return view('Admin.Pages.manage_sub_admin.update_user_password', compact('users')); } public function updateUsersProfile(Request $request) { // dd($request->all()); $validate = Validator::make($request->all(), [ 'password' => 'required|min:8', 'confirm_password' => 'required_with:password|same:password|min:8', ], [ 'required' => "This field is required", 'password.confirmed' => "Password not matched", ]); if ($validate->fails()) { return response()->json( [ "status" => 400, "message" => $validate->errors(), ] ); } $email = $request->email; $newPassword = $request->password; $userData = User::where('email', $email)->first(); if ($userData->password == $newPassword) { return response()->json([ 'status' => 201, 'message' => "Password matched same", ]); } else { $updatePassword = User::where('email', $email)->update([ 'password' => bcrypt($newPassword), ]); if ($updatePassword) { Mail::to($email)->send(new UpdatePasswordMail($newPassword)); return response()->json([ 'status' => 200, 'message' => "Password update successfully", ]); } return response()->json([ 'status' => 201, 'message' => "Password not updated", ]); } } }