feat: log create/update/delete/login activity across controllers

This commit is contained in:
GuavaPopper
2026-06-03 20:56:50 +07:00
parent 7fb649f690
commit cb3933541d
4 changed files with 28 additions and 2 deletions
@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\ActivityLog;
use App\Models\User; use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -34,6 +35,7 @@ class AdminUserController extends Controller
]); ]);
$user->syncRoles([$validated['role']]); $user->syncRoles([$validated['role']]);
ActivityLog::record('create', "Membuat pengguna: {$user->email}", 'user', $user->id);
return response()->json(['success' => true, 'data' => [ return response()->json(['success' => true, 'data' => [
'id' => $user->id, 'name' => $user->name, 'id' => $user->id, 'name' => $user->name,
'email' => $user->email, 'role' => $validated['role'], 'email' => $user->email, 'role' => $validated['role'],
@@ -53,6 +55,7 @@ class AdminUserController extends Controller
$user->update(['name' => $validated['name'], 'email' => $validated['email']]); $user->update(['name' => $validated['name'], 'email' => $validated['email']]);
$user->syncRoles([$validated['role']]); $user->syncRoles([$validated['role']]);
ActivityLog::record('update', "Mengubah pengguna: {$user->email}", 'user', $user->id);
return response()->json(['success' => true, 'data' => [ return response()->json(['success' => true, 'data' => [
'id' => $user->id, 'name' => $user->name, 'id' => $user->id, 'name' => $user->name,
'email' => $user->email, 'role' => $validated['role'], 'email' => $user->email, 'role' => $validated['role'],
@@ -68,6 +71,7 @@ class AdminUserController extends Controller
} }
$user->delete(); $user->delete();
ActivityLog::record('delete', "Menghapus pengguna: {$user->email}", 'user', $id);
return response()->json(['success' => true]); return response()->json(['success' => true]);
} }
@@ -80,6 +84,7 @@ class AdminUserController extends Controller
]); ]);
$user->update(['password' => $request->password]); $user->update(['password' => $request->password]);
ActivityLog::record('update', "Reset password pengguna: {$user->email}", 'user', $user->id);
return response()->json(['success' => true]); return response()->json(['success' => true]);
} }
} }
+3
View File
@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\ActivityLog;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
@@ -21,6 +22,7 @@ class AuthController extends Controller
if (Auth::attempt($credentials, $request->boolean('remember'))) { if (Auth::attempt($credentials, $request->boolean('remember'))) {
$request->session()->regenerate(); $request->session()->regenerate();
ActivityLog::record('login', 'Pengguna masuk ke sistem');
return redirect()->intended('/map'); return redirect()->intended('/map');
} }
@@ -31,6 +33,7 @@ class AuthController extends Controller
public function logout(Request $request) public function logout(Request $request)
{ {
ActivityLog::record('logout', 'Pengguna keluar dari sistem');
Auth::logout(); Auth::logout();
$request->session()->invalidate(); $request->session()->invalidate();
$request->session()->regenerateToken(); $request->session()->regenerateToken();
@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\ActivityLog;
use App\Models\RumahIbadah; use App\Models\RumahIbadah;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -29,6 +30,7 @@ class IbadahController extends Controller
$validated['user_id'] = auth()->id(); $validated['user_id'] = auth()->id();
$ibadah = RumahIbadah::create($validated); $ibadah = RumahIbadah::create($validated);
ActivityLog::record('create', "Menambah rumah ibadah: {$ibadah->nama}", 'ibadah', $ibadah->id);
return response()->json(['success' => true, 'data' => $ibadah]); return response()->json(['success' => true, 'data' => $ibadah]);
} }
@@ -54,6 +56,7 @@ class IbadahController extends Controller
]); ]);
$ibadah->update($validated); $ibadah->update($validated);
ActivityLog::record('update', "Mengubah rumah ibadah: {$ibadah->nama}", 'ibadah', $ibadah->id);
return response()->json(['success' => true, 'data' => $ibadah]); return response()->json(['success' => true, 'data' => $ibadah]);
} }
@@ -66,6 +69,7 @@ class IbadahController extends Controller
} }
$ibadah->delete(); $ibadah->delete();
ActivityLog::record('delete', "Menghapus rumah ibadah: {$ibadah->nama}", 'ibadah', $id);
return response()->json(['success' => true]); return response()->json(['success' => true]);
} }
} }
+16 -2
View File
@@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\ActivityLog;
use App\Models\RumahMiskin; use App\Models\RumahMiskin;
use Illuminate\Http\Request; use Illuminate\Http\Request;
@@ -16,14 +17,20 @@ class MiskinController extends Controller
{ {
$validated = $request->validate([ $validated = $request->validate([
'id_rumah' => 'required|string|unique:rumah_miskin,id_rumah', 'id_rumah' => 'required|string|unique:rumah_miskin,id_rumah',
'alamat' => 'required|string', 'nama_kk' => 'nullable|string',
'alamat' => 'nullable|string',
'jumlah_kk' => 'required|integer', 'jumlah_kk' => 'required|integer',
'jumlah_orang' => 'required|integer', 'jumlah_orang' => 'required|integer',
'latitude' => 'required|numeric', 'latitude' => 'required|numeric',
'longitude' => 'required|numeric', 'longitude' => 'required|numeric',
'pekerjaan' => 'nullable|string',
'pendapatan' => 'nullable|numeric',
'kondisi_rumah' => 'nullable|string',
'keterangan' => 'nullable|string',
]); ]);
$miskin = RumahMiskin::create($validated); $miskin = RumahMiskin::create($validated);
ActivityLog::record('create', "Menambah keluarga miskin: {$miskin->id_rumah}", 'miskin', $miskin->id_rumah);
return response()->json(['success' => true, 'data' => $miskin]); return response()->json(['success' => true, 'data' => $miskin]);
} }
@@ -31,14 +38,20 @@ class MiskinController extends Controller
{ {
$miskin = RumahMiskin::findOrFail($id_rumah); $miskin = RumahMiskin::findOrFail($id_rumah);
$validated = $request->validate([ $validated = $request->validate([
'alamat' => 'required|string', 'nama_kk' => 'nullable|string',
'alamat' => 'nullable|string',
'jumlah_kk' => 'required|integer', 'jumlah_kk' => 'required|integer',
'jumlah_orang' => 'required|integer', 'jumlah_orang' => 'required|integer',
'latitude' => 'required|numeric', 'latitude' => 'required|numeric',
'longitude' => 'required|numeric', 'longitude' => 'required|numeric',
'pekerjaan' => 'nullable|string',
'pendapatan' => 'nullable|numeric',
'kondisi_rumah' => 'nullable|string',
'keterangan' => 'nullable|string',
]); ]);
$miskin->update($validated); $miskin->update($validated);
ActivityLog::record('update', "Mengubah keluarga miskin: {$miskin->id_rumah}", 'miskin', $miskin->id_rumah);
return response()->json(['success' => true, 'data' => $miskin]); return response()->json(['success' => true, 'data' => $miskin]);
} }
@@ -46,6 +59,7 @@ class MiskinController extends Controller
{ {
$miskin = RumahMiskin::findOrFail($id_rumah); $miskin = RumahMiskin::findOrFail($id_rumah);
$miskin->delete(); $miskin->delete();
ActivityLog::record('delete', "Menghapus keluarga miskin: {$id_rumah}", 'miskin', $id_rumah);
return response()->json(['success' => true]); return response()->json(['success' => true]);
} }
} }