AdminAuthController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Http\Request;
  5. use Auth;
  6. use Hash;
  7. use App\Models\Admin;
  8. use App\Mail\Websitemail;
  9. class AdminAuthController extends Controller
  10. {
  11. public function login()
  12. {
  13. return view('admin.login');
  14. }
  15. public function login_submit(Request $request)
  16. {
  17. $request->validate([
  18. 'email' => ['required', 'email'],
  19. 'password' => ['required'],
  20. ]);
  21. $check = $request->all();
  22. $data = [
  23. 'email' => $check['email'],
  24. 'password' => $check['password']
  25. ];
  26. if(Auth::guard('admin')->attempt($data)) {
  27. return redirect()->route('admin_dashboard')->with('success','Login is successful!');
  28. } else {
  29. return redirect()->route('admin_login')->with('error','The information you entered is incorrect! Please try again!');
  30. }
  31. }
  32. public function logout()
  33. {
  34. Auth::guard('admin')->logout();
  35. return redirect()->route('admin_login')->with('success','Logout is successful!');
  36. }
  37. public function profile()
  38. {
  39. return view('admin.profile');
  40. }
  41. public function profile_submit(Request $request)
  42. {
  43. $request->validate([
  44. 'name' => ['required'],
  45. 'email' => ['required', 'email'],
  46. ]);
  47. $admin = Admin::where('id',Auth::guard('admin')->user()->id)->first();
  48. if($request->photo) {
  49. $request->validate([
  50. 'photo' => ['mimes:jpg,jpeg,png,gif','max:2024'],
  51. ]);
  52. $final_name = 'admin_'.time().'.'.$request->photo->extension();
  53. $request->photo->move(public_path('uploads'), $final_name);
  54. unlink(public_path('uploads/'.$admin->photo));
  55. $admin->photo = $final_name;
  56. }
  57. if($request->password) {
  58. $request->validate([
  59. 'password' => ['required'],
  60. 'confirm_password' => ['required','same:password'],
  61. ]);
  62. $admin->password = Hash::make($request->password);
  63. }
  64. $admin->name = $request->name;
  65. $admin->email = $request->email;
  66. $admin->update();
  67. return redirect()->back()->with('success','Profile is updated!');
  68. }
  69. public function forget_password()
  70. {
  71. return view('admin.forget-password');
  72. }
  73. public function forget_password_submit(Request $request)
  74. {
  75. $request->validate([
  76. 'email' => ['required', 'email'],
  77. ]);
  78. $admin = Admin::where('email',$request->email)->first();
  79. if(!$admin) {
  80. return redirect()->back()->with('error','Email is not found!');
  81. }
  82. $token = hash('sha256',time());
  83. $admin->token = $token;
  84. $admin->update();
  85. $reset_link = url('admin/reset-password/'.$token.'/'.$request->email);
  86. $subject = "Password Reset";
  87. $message = "To reset password, please click on the link below:<br>";
  88. $message .= "<a href='".$reset_link."'>Click Here</a>";
  89. \Mail::to($request->email)->send(new Websitemail($subject,$message));
  90. return redirect()->back()->with('success','We have sent a password reset link to your email. Please check your email. If you do not find the email in your inbox, please check your spam folder.');
  91. }
  92. public function reset_password($token,$email)
  93. {
  94. $admin = Admin::where('email',$email)->where('token',$token)->first();
  95. if(!$admin) {
  96. return redirect()->route('admin_login')->with('error','Token or email is not correct!');
  97. }
  98. return view('admin.reset-password', compact('token','email'));
  99. }
  100. public function reset_password_submit(Request $request, $token, $email)
  101. {
  102. $request->validate([
  103. 'password' => ['required'],
  104. 'confirm_password' => ['required','same:password'],
  105. ]);
  106. $admin = Admin::where('email',$request->email)->where('token',$request->token)->first();
  107. $admin->password = Hash::make($request->password);
  108. $admin->token = "";
  109. $admin->update();
  110. return redirect()->route('admin_login')->with('success','Password reset is successful. You can login now.');
  111. }
  112. }