From 403aaba17a9e52112329c8beb331146b7700ea85 Mon Sep 17 00:00:00 2001 From: Ritikesh yadav Date: Wed, 3 Jul 2024 11:36:57 +0530 Subject: [PATCH] admin email update module --- .../Admin/AdminProfileController.php | 46 ++ app/Mail/sendEmailOTP.php | 36 ++ public/assets/css/style.css | 14 + .../edit_admin_profile.blade.php | 560 ++++++++++++------ .../views/Admin/email/otp-mail.blade.php | 41 -- routes/web.php | 2 + 6 files changed, 475 insertions(+), 224 deletions(-) create mode 100644 app/Mail/sendEmailOTP.php diff --git a/app/Http/Controllers/Admin/AdminProfileController.php b/app/Http/Controllers/Admin/AdminProfileController.php index cd37588..2d9d24c 100644 --- a/app/Http/Controllers/Admin/AdminProfileController.php +++ b/app/Http/Controllers/Admin/AdminProfileController.php @@ -11,6 +11,7 @@ use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Validator; use DataTables; use Mail; +use App\Mail\sendEmailOTP; use App\Mail\UpdatePasswordMail; class AdminProfileController extends Controller @@ -21,6 +22,51 @@ class AdminProfileController extends Controller 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()) { diff --git a/app/Mail/sendEmailOTP.php b/app/Mail/sendEmailOTP.php new file mode 100644 index 0000000..d4f2860 --- /dev/null +++ b/app/Mail/sendEmailOTP.php @@ -0,0 +1,36 @@ +otp = $otp; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + $otp = $this->otp; + return $this->subject('OTP from Jericho Altenatives')->view('Admin.email.otp-mail',compact('otp')); + } +} diff --git a/public/assets/css/style.css b/public/assets/css/style.css index dcdb797..46ac54a 100644 --- a/public/assets/css/style.css +++ b/public/assets/css/style.css @@ -1515,3 +1515,17 @@ label.error { .modal .tabdiv label.error { padding: 6px 6px 6px 20px !important; } + +a.edit_email { + position: absolute; + top: 45px; + right: 22px; + color: #000; +} + +.email { + position: relative; +} +#admin_email_update label, #admin_email_update input { + width: 100%; +} \ No newline at end of file diff --git a/resources/views/Admin/Pages/manage_sub_admin/edit_admin_profile.blade.php b/resources/views/Admin/Pages/manage_sub_admin/edit_admin_profile.blade.php index 51c232a..cd7b854 100644 --- a/resources/views/Admin/Pages/manage_sub_admin/edit_admin_profile.blade.php +++ b/resources/views/Admin/Pages/manage_sub_admin/edit_admin_profile.blade.php @@ -1,205 +1,399 @@ @extends('Admin.layouts.master') @section('content') -
-
-
-
-
-

Update Profile

-
- Back -
-
-
-
- - -
-
-
-
-
-
-

Update Password

-
-
- @csrf - @method('post') -
-
-
-
- - - +
+
+
- +
-
+ +
+
+
+
+
+
+

Update Password

+
+
+ @csrf + @method('post') +
+
+
+
+ + + +
+
+ + +
+
+ + +
+
+
+ +
+
+
+
+
+
+
+
+
+ + {{-- edit email popup modal start --}} + + {{-- edit email popup modal end --}} + {{-- edit email otp popup modal start --}} + + {{-- edit email otp popup modal end --}} @endsection @section('scripts') - -@endsection \ No newline at end of file + }) + } + }); + +@endsection diff --git a/resources/views/Admin/email/otp-mail.blade.php b/resources/views/Admin/email/otp-mail.blade.php index dc23f16..a423f92 100644 --- a/resources/views/Admin/email/otp-mail.blade.php +++ b/resources/views/Admin/email/otp-mail.blade.php @@ -1,44 +1,3 @@ - - - - - diff --git a/routes/web.php b/routes/web.php index d5d506c..129f59d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -172,6 +172,8 @@ Route::get('/view-clear', function () { //admin update profile route Route::get('view-profile', [AdminProfileController::class, 'viewProfile'])->name('view-profile'); +Route::post('send-otp-on-mail', [AdminProfileController::class, 'sendOtpOnMail'])->name('send-otp-on-mail'); +Route::post('verify-email-update-otp', [AdminProfileController::class, 'verifyEmailOtp'])->name('verify-email-update-otp'); Route::post('update-profile', [AdminProfileController::class, 'editProfile'])->name('update-profile'); Route::post('update-password', [AdminProfileController::class, 'updatePassword'])->name('update-password'); Route::get('view-user-password', [AdminProfileController::class, 'viewUsersProfile'])->name('view-user-password');