diff --git a/app/Http/Controllers/AuthMobile/AuthController.php b/app/Http/Controllers/AuthMobile/AuthController.php index 1e44bd52..84b3f867 100644 --- a/app/Http/Controllers/AuthMobile/AuthController.php +++ b/app/Http/Controllers/AuthMobile/AuthController.php @@ -217,7 +217,9 @@ class AuthController extends Controller $user['is_verified'] = 0; $user->save(); - Mail::to($request->email)->send(new ResetPassword($user->name, $token)); + $resetUrl = rtrim(config('app.app_pembida'), '/') . '/reset-password/' . $token; + + Mail::to($request->email)->send(new ResetPassword($user->name, $resetUrl)); if (Mail::failures() != 0) { return response()->json([ @@ -232,6 +234,59 @@ class AuthController extends Controller ]); } + public function validateResetToken($token) + { + $user = User::where('token', $token)->where('is_verified', 0)->first(); + + if (!$user) { + return response()->json([ + 'success' => false, + 'message' => 'Pautan tetapan semula kata laluan tidak sah atau telah tamat tempoh.', + ], 422); + } + + return response()->json([ + 'success' => true, + 'email' => $user->email, + ]); + } + + public function updatePassword(Request $request) + { + $validator = Validator::make($request->all(), [ + 'token' => 'required|string', + 'password' => 'required|string|min:6', + 'confirm_password' => 'required|same:password', + ]); + + if ($validator->fails()) { + return response()->json([ + 'success' => false, + 'message' => $validator->errors()->first(), + 'errors' => $validator->errors(), + ], 422); + } + + $user = User::where('token', $request->token)->where('is_verified', 0)->first(); + + if (!$user) { + return response()->json([ + 'success' => false, + 'message' => 'Pautan tetapan semula kata laluan tidak sah atau telah tamat tempoh.', + ], 422); + } + + $user->password = Hash::make($request->password); + $user->token = null; + $user->is_verified = 0; + $user->save(); + + return response()->json([ + 'success' => true, + 'message' => 'Katalaluan anda telah berjaya dikemaskini.', + ]); + } + public function getProfile() { $user = Auth::user(); diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index b300775e..539239be 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -734,7 +734,10 @@ class HomeController extends Controller return view('homecawangan', compact('all_lelong', 'arrayinfomutu')); } else { Auth::logout(); - return redirect()->route('login'); + return redirect()->route('login')->with( + 'failed', + 'Akaun ini tiada peranan (role) yang sah. Sila hubungi admin untuk tetapkan role.' + ); } } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 72454342..0bb03262 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -113,7 +113,9 @@ class UserController extends Controller $user['is_verified'] = 0; $user->save(); - Mail::to($request->email)->send(new ResetPassword($user->name, $token)); + $resetUrl = url('/forgot-password/' . $token); + + Mail::to($request->email)->send(new ResetPassword($user->name, $resetUrl)); if(Mail::failures() != 0) { return back()->with('success', 'Berjaya DiHantar! Pautan Lupa Katalaluan Telah Dihantarkan Kepada Alamat Emel Anda.'); diff --git a/app/Mail/ResetPassword.php b/app/Mail/ResetPassword.php index 4932239a..a41daee9 100644 --- a/app/Mail/ResetPassword.php +++ b/app/Mail/ResetPassword.php @@ -11,33 +11,22 @@ class ResetPassword extends Mailable { use Queueable, SerializesModels; - /** - * Create a new message instance. - * - * @return void - */ - public $name; - public $token; + public $resetUrl; - public function __construct($name, $token) + public function __construct($name, $resetUrl) { $this->name = $name; - $this->token = $token; + $this->resetUrl = $resetUrl; } - /** - * Build the message. - *git stsa - */ public function build() { - // return $this->view('view.name'); $user['name'] = $this->name; - $user['token'] = $this->token; + $user['reset_url'] = $this->resetUrl; - return $this->from("masterlelongpkb@gmail.com", "Admin ArrahnBid") - ->subject('ArrahnBid -Tukar Katalaluan') - ->view('template.reset-password', ['user' => $user]); + return $this->from(config('mail.from.address'), config('mail.from.name')) + ->subject('ArrahnBid - Tukar Katalaluan') + ->view('template.reset-password', ['user' => $user]); } } diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 5b1604d5..17f290ac 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -27,8 +27,8 @@ @if (session('success'))