where('role', 'polisi')->count(); $masyarakat = $users->where('role', 'masyarakat')->count(); $pelaku = Pelaku::all()->count(); $laporan = Laporan::all()->count(); return view('server-side.pages.dashboard.dashboard', compact( ['polisi', 'masyarakat', 'pelaku', 'laporan'] )); } public function dataUser () { $numtab = 1; $users = User::all(); return view('server-side.pages.manajemen-user.data-user', compact( ['numtab', 'users'] )); } public function dataAdministrator () { $numtab = 1; $administrator = User::where('role', 'administrator')->get(); return view('server-side.pages.manajemen-data.data-administrator', compact( ['numtab', 'administrator'] )); } public function dataPolisi () { $numtab = 1; $polisi = User::where('role', 'polisi')->get(); return view('server-side.pages.manajemen-data.data-polisi', compact( ['numtab', 'polisi'] )); } public function dataMasyarakat () { $numtab = 1; $masyarakat = Masyarakat::join('users', 'users.id', '=', 'masyarakats.user_id')->get(); return view('server-side.pages.manajemen-data.data-masyarakat', compact( ['numtab', 'masyarakat'] )); } public function dataPelaku () { $numtab = 1; $pelaku = Pelaku::all(); return view('server-side.pages.manajemen-data.data-pelaku-kejahatan', compact( ['numtab', 'pelaku'] )); } public function filterLaporan () { $numtab = 1; $filters = Laporan::join('masyarakats', 'masyarakats.id', '=', 'laporans.masyarakat_id')->join('users', 'users.id', '=', 'masyarakats.user_id')->where('laporans.status', 'menunggu persetujuan')->select('laporans.*', 'users.name', 'users.email')->get(); return view('server-side.pages.manajemen-laporan.filter-laporan', compact( ['numtab', 'filters'] )); } public function dataLaporan () { $numtab = 1; $laporan = Laporan::join('masyarakats', 'masyarakats.id', '=', 'laporans.masyarakat_id')->join('users', 'users.id', '=', 'masyarakats.user_id')->whereNotIn('status', ['menunggu persetujuan'])->select('laporans.*', 'users.name', 'users.email')->get(); return view('server-side.pages.manajemen-laporan.data-laporan', compact( ['numtab', 'laporan'] )); } public function detailLaporan ($id) { $detail = Laporan::join('masyarakats', 'masyarakats.id', '=', 'laporans.masyarakat_id')->join('users', 'users.id', '=', 'masyarakats.user_id')->where('laporans.id', $id)->select('laporans.*', 'users.name', 'users.email')->first(); return view('server-side.pages.manajemen-laporan.detail-laporan', compact( ['detail'] )); } public function updateLaporan (Request $request, $id) { $request->validate(['status' => ['required']]); $laporan = Laporan::where('id', $id)->first(); $laporan->status = $request->status; $laporan->save(); return Redirect::route('filter.laporan')->with('message', 'Berhasil update status laporan masyrakat');; } public function registrasiUser () { return view('server-side.pages.manajemen-user.registrasi-user'); } public function registrasiStore (Request $request) { $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:' . User::class], 'password' => ['required', 'confirmed', Rules\Password::defaults()], 'role' => ['required'], ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'role' => $request->role, ]); if ($request->role == 'masyarakat') { Masyarakat::create([ 'user_id' => $user->id, 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s') ]); } return Redirect::route('data.user')->with('message', 'Berhasil melakukan registrasi user baru'); } public function deleteUser ($id) { $user = User::findOrFail($id); if ($user->role === 'masyarakat') { $masyarakat = Masyarakat::where('user_id', $id)->first(); if ($masyarakat) { Laporan::where('masyarakat_id', $masyarakat->id)->delete(); $masyarakat->delete(); } } $user->delete(); return Redirect::route('data.user')->with('message', 'Berhasil menghapus user'); } public function tambahPelaku () { return view('server-side.pages.manajemen-data.tambah-pelaku-kejahatan'); } public function storePelaku (Request $request) { $request->validate([ 'nama' => ['required'], 'image' => ['required', 'mimes:png,jpg,jpeg', 'max:1024'], 'jenis_kelamin' => ['required'], 'tempat_lahir' => ['required'], 'tanggal_lahir' => ['required'], 'alamat' => ['required'], 'riwayat_kejahatan' => ['required'], ]); $data = $request->all(); $image = $data['image']; $filename = strtolower('pelaku-' . $data['nama'] . '-' . time() . '-' . $image->getClientOriginalName()); $data['image'] = strtolower('pelaku-' . $data['nama'] . '-' . time() . '-' . $image->getClientOriginalName()); $destinationPath = public_path('foto-pelaku'); $image->move($destinationPath, $filename); Pelaku::create($data); return Redirect::route('data.pelaku')->with('message', 'Berhasil menambah data pelaku kejahatan'); } public function ubahPassAdmin () { return view('server-side.pages.manajemen-password.ubah-pass-admin'); } public function prosesPassAdmin (Request $request) { $request->validate([ 'password_lama' => 'required', 'password_baru' => 'required|min:8', ]); $user = User::find(Auth::user()->id); if (!Hash::check($request->password_lama, $user->password)) { return Redirect::back()->with('error', 'Password lama yang Anda masukkan salah!'); } if ($request->password_baru !== $request->ulangi_password_baru) { return Redirect::back()->with('error', 'Kata sandi baru dan kata sandi yang diketik ulang tidak cocok!'); } $user->password = Hash::make($request->password_baru); $user->save(); return Redirect::route('pass.admin')->with('message', 'Berhasil merubah password'); } public function ubahPassPolmas () { return view('server-side.pages.manajemen-password.ubah-pass-polmas'); } public function prosesPassPolmas (Request $request) { $request->validate([ 'password_lama' => 'required', 'password_baru' => 'required|min:8', ]); $user = User::find(Auth::user()->id); if (!Hash::check($request->password_lama, $user->password)) { return Redirect::back()->with('error', 'Password lama yang Anda masukkan salah!'); } if ($request->password_baru !== $request->ulangi_password_baru) { return Redirect::back()->with('error', 'Kata sandi baru dan kata sandi yang diketik ulang tidak cocok!'); } $user->password = Hash::make($request->password_baru); $user->save(); return Redirect::route('pass.polmas')->with('message', 'Berhasil merubah password'); } }