From cb3933541dd3c7ee23e86caf76acddbc7475d341 Mon Sep 17 00:00:00 2001 From: GuavaPopper Date: Wed, 3 Jun 2026 20:56:50 +0700 Subject: [PATCH] feat: log create/update/delete/login activity across controllers --- app/Http/Controllers/AdminUserController.php | 5 +++++ app/Http/Controllers/AuthController.php | 3 +++ app/Http/Controllers/IbadahController.php | 4 ++++ app/Http/Controllers/MiskinController.php | 18 ++++++++++++++++-- 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/AdminUserController.php b/app/Http/Controllers/AdminUserController.php index eef8f95..e77a448 100644 --- a/app/Http/Controllers/AdminUserController.php +++ b/app/Http/Controllers/AdminUserController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\ActivityLog; use App\Models\User; use Illuminate\Http\Request; @@ -34,6 +35,7 @@ class AdminUserController extends Controller ]); $user->syncRoles([$validated['role']]); + ActivityLog::record('create', "Membuat pengguna: {$user->email}", 'user', $user->id); return response()->json(['success' => true, 'data' => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'role' => $validated['role'], @@ -53,6 +55,7 @@ class AdminUserController extends Controller $user->update(['name' => $validated['name'], 'email' => $validated['email']]); $user->syncRoles([$validated['role']]); + ActivityLog::record('update', "Mengubah pengguna: {$user->email}", 'user', $user->id); return response()->json(['success' => true, 'data' => [ 'id' => $user->id, 'name' => $user->name, 'email' => $user->email, 'role' => $validated['role'], @@ -68,6 +71,7 @@ class AdminUserController extends Controller } $user->delete(); + ActivityLog::record('delete', "Menghapus pengguna: {$user->email}", 'user', $id); return response()->json(['success' => true]); } @@ -80,6 +84,7 @@ class AdminUserController extends Controller ]); $user->update(['password' => $request->password]); + ActivityLog::record('update', "Reset password pengguna: {$user->email}", 'user', $user->id); return response()->json(['success' => true]); } } diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index e38699a..9d46e76 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\ActivityLog; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; @@ -21,6 +22,7 @@ class AuthController extends Controller if (Auth::attempt($credentials, $request->boolean('remember'))) { $request->session()->regenerate(); + ActivityLog::record('login', 'Pengguna masuk ke sistem'); return redirect()->intended('/map'); } @@ -31,6 +33,7 @@ class AuthController extends Controller public function logout(Request $request) { + ActivityLog::record('logout', 'Pengguna keluar dari sistem'); Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); diff --git a/app/Http/Controllers/IbadahController.php b/app/Http/Controllers/IbadahController.php index 141dc28..4719eef 100644 --- a/app/Http/Controllers/IbadahController.php +++ b/app/Http/Controllers/IbadahController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\ActivityLog; use App\Models\RumahIbadah; use Illuminate\Http\Request; @@ -29,6 +30,7 @@ class IbadahController extends Controller $validated['user_id'] = auth()->id(); $ibadah = RumahIbadah::create($validated); + ActivityLog::record('create', "Menambah rumah ibadah: {$ibadah->nama}", 'ibadah', $ibadah->id); return response()->json(['success' => true, 'data' => $ibadah]); } @@ -54,6 +56,7 @@ class IbadahController extends Controller ]); $ibadah->update($validated); + ActivityLog::record('update', "Mengubah rumah ibadah: {$ibadah->nama}", 'ibadah', $ibadah->id); return response()->json(['success' => true, 'data' => $ibadah]); } @@ -66,6 +69,7 @@ class IbadahController extends Controller } $ibadah->delete(); + ActivityLog::record('delete', "Menghapus rumah ibadah: {$ibadah->nama}", 'ibadah', $id); return response()->json(['success' => true]); } } diff --git a/app/Http/Controllers/MiskinController.php b/app/Http/Controllers/MiskinController.php index ccaef6c..30fc537 100644 --- a/app/Http/Controllers/MiskinController.php +++ b/app/Http/Controllers/MiskinController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\ActivityLog; use App\Models\RumahMiskin; use Illuminate\Http\Request; @@ -16,14 +17,20 @@ class MiskinController extends Controller { $validated = $request->validate([ 'id_rumah' => 'required|string|unique:rumah_miskin,id_rumah', - 'alamat' => 'required|string', + 'nama_kk' => 'nullable|string', + 'alamat' => 'nullable|string', 'jumlah_kk' => 'required|integer', 'jumlah_orang' => 'required|integer', 'latitude' => 'required|numeric', 'longitude' => 'required|numeric', + 'pekerjaan' => 'nullable|string', + 'pendapatan' => 'nullable|numeric', + 'kondisi_rumah' => 'nullable|string', + 'keterangan' => 'nullable|string', ]); $miskin = RumahMiskin::create($validated); + ActivityLog::record('create', "Menambah keluarga miskin: {$miskin->id_rumah}", 'miskin', $miskin->id_rumah); return response()->json(['success' => true, 'data' => $miskin]); } @@ -31,14 +38,20 @@ class MiskinController extends Controller { $miskin = RumahMiskin::findOrFail($id_rumah); $validated = $request->validate([ - 'alamat' => 'required|string', + 'nama_kk' => 'nullable|string', + 'alamat' => 'nullable|string', 'jumlah_kk' => 'required|integer', 'jumlah_orang' => 'required|integer', 'latitude' => 'required|numeric', 'longitude' => 'required|numeric', + 'pekerjaan' => 'nullable|string', + 'pendapatan' => 'nullable|numeric', + 'kondisi_rumah' => 'nullable|string', + 'keterangan' => 'nullable|string', ]); $miskin->update($validated); + ActivityLog::record('update', "Mengubah keluarga miskin: {$miskin->id_rumah}", 'miskin', $miskin->id_rumah); return response()->json(['success' => true, 'data' => $miskin]); } @@ -46,6 +59,7 @@ class MiskinController extends Controller { $miskin = RumahMiskin::findOrFail($id_rumah); $miskin->delete(); + ActivityLog::record('delete', "Menghapus keluarga miskin: {$id_rumah}", 'miskin', $id_rumah); return response()->json(['success' => true]); } }