<?php
namespace App\Http\Controllers;
use App\Models\logAktifitas;
use App\Models\Profile;
use App\Models\User;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use SebastianBergmann\CodeCoverage\Report\Html\Dashboard;
use Throwable;
class AuthController extends Controller
{
public function login()
{
return view('Auth.login');
}
public function loginAction(Request $request)
{
try {
$credential = $request->validate(
[
'email' => 'email|required',
'password' => 'required',
]
);
if (Auth::attempt($credential)) {
return redirect()->intended('/dashboard');
} else {
return redirect()->back()->with('error', 'akun yang anda masukan salah!');
}
} catch (Throwable $th) {
return redirect()->back()->with('error', $th->getMessage());
}
}
public function logout()
{
Auth::logout(); // Menghapus sesi pengguna
return redirect()->route('login.page')->with('info', 'Anda Telah logout.');
}
public function registrasiPage()
{
return view('Auth.registrasi');
}
public function registrasi(Request $request)
{
try {
$request->validate([
'email' => 'required|email',
'name' => 'required',
'password' => 'nullable|string|min:6|confirmed',
'nama_lengkap' => 'required',
'alamat' => 'required|string|max:500',
'no_telp' => 'required|numeric',
'photo' => 'nullable|mimes:jpeg,png,jpg|max:2048',
], [
'email.required' => 'Email wajib diisi.',
'email.email' => 'Format email tidak valid.',
'name.required' => 'Username wajib diisi.',
'password.min' => 'Password minimal 6 karakter.',
'password.confirmed' => 'Konfirmasi password tidak sesuai.',
'nama_lengkap.required' => 'Nama lengkap wajib diisi.',
'alamat.required' => 'Alamat wajib diisi.',
'alamat.max' => 'Alamat tidak boleh lebih dari 500 karakter.',
'no_telp.required' => 'Nomor WhatsApp wajib diisi.',
'no_telp.numeric' => 'Nomor WhatsApp harus berupa angka.',
'photo.mimes' => 'Photo harus berformat jpeg, png, atau jpg.',
'photo.max' => 'Photo tidak boleh lebih dari 2MB.',
]);
$dataUser = [
'email' => $request->email,
'name' => $request->name,
];
if ($request->filled('password')) {
$dataUser['password'] = Hash::make($request->password);
}
$createUser = User::create($dataUser);
$createUser->assignRole('user');
$dataProfile = [
'user_id' => $createUser->id,
'nama_lengkap' => $request->nama_lengkap,
'alamat' => $request->alamat,
'no_telp' => $request->no_telp,
];
if ($request->hasFile('photo')) {
$foto_file = $request->file('photo');
$foto_ekstensi = $foto_file->extension();
$foto_baru = "Profile-" . date('ymdhis') . ".$foto_ekstensi";
$foto_file->move(public_path('images/profile'), $foto_baru);
$dataProfile['photo'] = $foto_baru;
}
Profile::create($dataProfile);
$time = Carbon::now('Asia/Makassar')->format('Y-m-d H:i:s');
$log_aktifitas = [
'user_id' => $createUser->id,
'aktifitas' => 'User baru telah ditambahkan dengan Email ' . $createUser->email,
'waktu' => $time,
];
logAktifitas::create($log_aktifitas);
return redirect()->route('login.page')->with('success', 'Selamat,Akun Berhasil dibuat!');
} catch (Throwable $th) {
return redirect()->back()->with('error', $th->getMessage());
// return redirect()->route('error.500');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]