get(); return view('admin.user', compact('users')); } public function tambahuser(Request $request) { // Validasi input $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users,email', // Pastikan email unik ]); // CEK ADMIN - BAGIAN YANG DITAMBAH if ($request->input('usertype') == 'admin') { $adminExists = User::where('usertype', 'admin')->exists(); if ($adminExists) { toastr()->error('Admin sudah ada! Tidak bisa menambah admin lagi.'); return redirect()->route('user'); } } $name = $request->input('name'); $email = $request->input('email'); // Membuat user baru dengan password default dan usertype $user = new User(); $user->name = $name; $user->email = $email; $user->password = bcrypt('1234567890'); // Password default $user->usertype = $request->input('usertype', 'user'); // Usertype otomatis, fallback ke 'user' jika tidak ada input // Simpan data user if ($user->save()) { toastr()->success('Data user berhasil ditambahkan.'); } else { toastr()->error('Gagal menambahkan data user.'); } return redirect()->route('user'); } public function updateuser(Request $request, $id) { // Validasi input $request->validate([ 'name' => 'required', 'email' => 'required|email|unique:users,email,' . $id, // Pastikan email unik, kecuali untuk user yang sedang diupdate 'password' => 'nullable|min:6', // Validasi password jika diisi 'usertype' => 'required' // Pastikan usertype ada ]); // CEK ADMIN - BAGIAN YANG DITAMBAH if ($request->input('usertype') == 'admin') { // Cek apakah sudah ada admin lain (selain user yang sedang diupdate) $adminExists = User::where('usertype', 'admin')->where('id', '!=', $id)->exists(); if ($adminExists) { toastr()->error('Admin sudah ada! Tidak bisa mengubah user lain menjadi admin.'); return redirect()->route('user'); } } // Cari user yang akan diupdate berdasarkan ID $user = User::find($id); if (!$user) { toastr()->error('User tidak ditemukan.'); return redirect()->route('user'); } // Update data user $user->name = $request->input('name'); $user->email = $request->input('email'); $user->usertype = $request->input('usertype'); // Update usertype // Jika ada password baru yang diinput, update password-nya if ($request->filled('password')) { $user->password = bcrypt($request->input('password')); // Password baru jika diisi } // Simpan perubahan if ($user->save()) { toastr()->success('Data user berhasil diperbarui.'); } else { toastr()->error('Gagal memperbarui data user.'); } return redirect()->route('user')->with('reload', true); } public function hapususer($id) { // Cari user berdasarkan ID $user = User::findOrFail($id); // Hapus data user $user->delete(); // Berikan notifikasi sukses toastr()->success('Data user berhasil dihapus.'); // Redirect kembali ke halaman user return redirect()->route('user'); } public function downloaduser() { // Ambil data sekolah dari database $users = User::all(); $pdf = Pdf::loadView('admin.userpdf', compact('users')); // Download file PDF return $pdf->download('data_user.pdf'); } }