added audit trails

This commit is contained in:
Jagad R R
2025-01-01 17:14:46 +07:00
parent 9b1ca9f58d
commit d4bbe3a602
20 changed files with 287 additions and 34 deletions
@@ -19,6 +19,7 @@ use App\Models\FormOthers;
use App\Models\FormMeetingSeminar;
use App\Models\UserHasCabang;
use App\Models\Cabang;
use App\Helpers\AuditTrailHelper;
class AdminsController extends Controller
{
@@ -92,6 +93,7 @@ class AdminsController extends Controller
// return redirect()->route('admin.admins.index');
// }
AuditTrailHelper::AddAuditTrail('Insert', 'Added New User (' . $request->email . ') to the User Table');
session()->flash('success', 'Admin has been created.');
return redirect()->back();
}
@@ -141,6 +143,7 @@ class AdminsController extends Controller
$userHasCabang ? $userHasCabang->update(['cabang_id' => $request->cabang_id]) : UserHasCabang::create(['user_id' => $admin->id, 'cabang_id' => $request->cabang_id]);
}
AuditTrailHelper::AddAuditTrail('Update', 'Update User Data (' . $request->email . ') in the User Table');
session()->flash('success', 'Admin has been updated.');
return redirect()->back();
}
@@ -179,7 +182,10 @@ class AdminsController extends Controller
$this->checkAuthorization(auth()->user(), ['admin.delete']);
$admin = Admin::findOrFail($id);
AuditTrailHelper::AddAuditTrail('Delete', 'Deleted User (' . $admin->email . ') from the User Table');
$admin->delete();
session()->flash('success', 'Admin has been deleted.');
return redirect()->back();
}
@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use App\Models\AuditTrail;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
class AuditTrailController extends Controller
{
public function index()
{
$pageInfo = [
'title' => 'Audit Trails',
'sub_title' => 'List of Audit Trails System',
'path' => url()->current()
];
return view(
'backend.pages.audit_trail.index',
[
'data' => AuditTrail::orderBy('id', 'desc')->get(),
'pageInfo' => $pageInfo,
]
);
}
}
@@ -9,6 +9,7 @@ use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use App\Helpers\AuditTrailHelper;
class LoginController extends Controller
{
@@ -76,30 +77,38 @@ class LoginController extends Controller
// Attempt to login
if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'admin');
return redirect()->route('admin.dashboard');
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'admin');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
} else if (Auth::guard('admin')->attempt(['username' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'admin');
return redirect()->route('admin.dashboard');
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'admin');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
}else if (Auth::guard('web')->attempt(['username' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'web');
return redirect()->route('admin.dashboard');
}else if (Auth::guard('web')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'web');
return redirect()->route('admin.dashboard');
} else if (Auth::guard('web')->attempt(['username' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'web');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
} else if (Auth::guard('web')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) {
session()->flash('success', 'Successully Logged in !');
Session::put('current_guard', 'web');
AuditTrailHelper::AuthAttempt('Login', 'User (' . $request->email . ') Logged in to the System');
return redirect()->route('admin.dashboard');
}
// error
session()->flash('error', 'Invalid email and password..');
return back();
// error
session()->flash('error', 'Invalid email and password..');
return back();
}
/**
* logout admin guard
*
@@ -107,13 +116,25 @@ class LoginController extends Controller
*/
public function logout()
{
try{
$user = Auth::guard('admin')->user();
if (!$user) {
Auth::guard('admin')->logout();
return redirect()->route('admin.login');
}catch (Exception $e) {
Auth::guard('web')->logout();
return redirect()->route('admin.login');
}
// Log activity
AuditTrailHelper::AuthAttempt('Logout', 'User (' . $user->email . ') Logged out from the System');
try {
// Logout from admin guard
Auth::guard('admin')->logout();
} catch (Exception $e) {
// Fallback to web guard if admin logout fails
Auth::guard('web')->logout();
}
// Redirect to admin login
return redirect()->route('admin.login');
}
}
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Backend;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use App\Helpers\AuditTrailHelper;
class MenuRoleController extends Controller
{
@@ -99,6 +100,8 @@ class MenuRoleController extends Controller
DB::table('role_menu')->insert($dataToInsert);
DB::commit();
AuditTrailHelper::AddAuditTrail('Update', 'Assign Menu (' . $roleId . ') to Role (' . $roleId . ')');
return response()->json(['success' => true], 200);
} catch (\Exception $e) {
DB::rollBack();
@@ -11,6 +11,7 @@ use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\RedirectResponse;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use App\Helpers\AuditTrailHelper;
class RolesController extends Controller
{
@@ -60,6 +61,7 @@ class RolesController extends Controller
$role->syncPermissions($permissions);
}
AuditTrailHelper::AddAuditTrail('Insert', 'Created New Role (' . $request->name . ') in the Role Table');
session()->flash('success', 'Role has been created.');
return redirect()->back();
}
@@ -105,6 +107,7 @@ class RolesController extends Controller
$role->syncPermissions($permissions);
}
AuditTrailHelper::AddAuditTrail('Update', 'Updated Role Data (' . $request->name . ') in the Role Table');
session()->flash('success', 'Role has been updated.');
return redirect()->back();
}
@@ -118,6 +121,7 @@ class RolesController extends Controller
session()->flash('error', 'Role not found.');
return back();
}
AuditTrailHelper::AddAuditTrail('Delete', 'Deleted Role (' . $role->name . ')');
$role->delete();
session()->flash('success', 'Role has been deleted.');