email);
Session::flash('passwordLogin', $request->password);
$request->validate([
'email' => 'required|email',
'password' => 'required',
], [
'email.required' => 'Email harus diisi',
'email.email' => 'Email tidak valid',
'password.required' => 'Password harus diisi',
]);
$credentials = $request->only('email', 'password');
if (auth()->attempt($credentials)) {
return redirect('/')->with('login', 'Login berhasil');
}
return redirect()->back()->with('loginerror', 'Email atau password salah');
}
public function registerPost(Request $request)
{
Session::flash('nameRegister', $request->name);
Session::flash('emailRegister', $request->email);
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:6',
'repassword' => 'required|same:password',
], [
'name.required' => 'Nama user harus diisi',
'email.required' => 'Email user harus diisi',
'email.email' => 'Email user harus valid',
'email.unique' => 'Email user sudah terdaftar',
'password.required' => 'Password user harus diisi',
'password.min' => 'Password user minimal 6 karakter',
'repassword.required' => 'Konfirmasi password user harus diisi',
'repassword.same' => 'Konfirmasi password user tidak sama dengan password',
]);
User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
'role' => 'user',
]);
return redirect('/user/login')->with('register', 'Registrasi berhasil, silahkan login');
}
public function updateprofil(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required|email|unique:users,email,' . auth()->user()->id,
'password' => 'nullable|min:6',
'repassword' => 'nullable|same:password',
], [
'name.required' => 'Nama user harus diisi',
'email.required' => 'Email user harus diisi',
'email.email' => 'Email user harus valid',
'email.unique' => 'Email user sudah terdaftar',
'password.min' => 'Password user minimal 6 karakter',
'repassword.same' => 'Konfirmasi password user tidak sama dengan password',
]);
$user = User::find(auth()->user()->id);
$user->name = $request->name;
$user->email = $request->email;
if ($request->password) {
$user->password = bcrypt($request->password);
}
$user->save();
return redirect('/user/profil')->with('updateprofil', 'Profil berhasil diupdate');
}
public function profil()
{
return view('user.auth.profil');
}
public function logout()
{
auth()->logout();
return redirect('/')->with('logout', 'Logout berhasil');
}
public function linkresetpassword()
{
return view('user.auth.reset-password');
}
public function changepassword($code)
{
$user = User::where('code', $code)->where('status_code', 'aktif')->where('role', 'user')->first();
if ($user) {
return view('user.auth.change-password', [
'user' => $user,
]);
} else {
return redirect('/')->with('linkkadaluarsa', 'Reset Password Gagal');
}
}
public function changepasswordpost(Request $request)
{
$user = User::where('code', $request->code)->where('status_code', 'aktif')->where('role', 'user')->first();
$request->validate([
'password' => 'required',
'repassword' => 'required|same:password',
], [
'password.required' => 'Password tidak boleh kosong',
'repassword.required' => 'Re-Password tidak boleh kosong',
'repassword.same' => 'Re-Password tidak sama dengan Password',
]);
$user->password = bcrypt($request->password);
$user->code = null;
$user->status_code = "tidak_aktif";
$user->save();
return redirect('/')->with('resetpasswordberhasil', 'Reset Password Berhasil');
}
public function sendlinkresetpassword(Request $request)
{
$request->validate([
'email' => ['required'],
], [
'email.required' => 'Email tidak boleh kosong',
]);
$user = User::where('email', $request->email)->where('role', 'user')->first();
if ($user) {
try {
$mail = new PHPMailer(true);
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output
$mail->isSMTP(); //Send using SMTP
$mail->Host = 'monza.id.domainesia.com'; //Set the SMTP server to send through
$mail->SMTPAuth = true; //Enable SMTP authentication
$mail->Username = 'rentcar@kaliansenang.my.id'; //SMTP username
$mail->Password = 'Gituajamarah#23'; //SMTP password
$mail->SMTPSecure = 'ssl'; //Enable implicit TLS encryption
$mail->Port = 465;
//Recipients
$mail->setFrom('rentcar@kaliansenang.my.id', 'Pemesanan Makanan');
$mail->addAddress($request->email); //Add a recipient
$Code = substr((str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")), 0, 10);
//Content
$mail->isHTML(true); //Set email format to HTML
$mail->Subject = 'Password Reset';
$mail->Body = 'To reset your password, please click the link below:
Reset Password';
$updatecode = User::where('email', '=', $request->email)->first();
$updatecode->code = $Code;
$updatecode->status_code = 'aktif';
$updatecode->save();
$mail->send();
return redirect('/user/reset-password')->with('linkresetdikirim', 'Link reset password telah dikirim ke email');
} catch (Exception $e) {
}
} else {
return redirect()->back()->with('emailtidakditemukan', 'Email tidak ditemukan');
}
}
}