user logs update
This commit is contained in:
@ -144,6 +144,11 @@ class LoginController extends Controller
|
||||
// return $req->wantsJson()
|
||||
// ? new JsonResponse([], 204)
|
||||
// : redirect(route('view_dashboard'));
|
||||
$log = [
|
||||
"module" => "Auth",
|
||||
"action" => "Login",
|
||||
"desc" => "User login",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, "User login");
|
||||
|
||||
if ($req->wantsJson()) {
|
||||
@ -175,6 +180,11 @@ class LoginController extends Controller
|
||||
public function logout(Request $req)
|
||||
{
|
||||
$user = Auth::user();
|
||||
$log = [
|
||||
"module" => "Auth",
|
||||
"action" => "Logout",
|
||||
"desc" => "User logout",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, "User logout");
|
||||
|
||||
if ($user->role == Users::ROLE_ADMIN) {
|
||||
|
||||
@ -27,7 +27,13 @@ class ClientController extends Controller
|
||||
$data = [
|
||||
"disc_types" => Clients::select2DiscountTypes(),
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, "Access Company menu");
|
||||
|
||||
$log = [
|
||||
"module" => "Company",
|
||||
"action" => "View",
|
||||
"desc" => "Open Company Menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view("menu_v1.clients", $data);
|
||||
}
|
||||
|
||||
@ -253,7 +259,13 @@ class ClientController extends Controller
|
||||
$apiResp = Responses::created("success add new client");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, "Add new company: ".$req->cname);
|
||||
|
||||
$log = [
|
||||
"module" => "Company",
|
||||
"action" => "Create",
|
||||
"desc" => "Add new company: ".$req->cname,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
Storage::disk("public")->delete($url_clogo);
|
||||
@ -485,7 +497,13 @@ class ClientController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success update client");
|
||||
UserLogs::insert(Auth::user()->id, "Edit company: ".$req->cname);
|
||||
|
||||
$log = [
|
||||
"module" => "Company",
|
||||
"action" => "Update",
|
||||
"desc" => "Update company: ".$req->cname,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
Storage::disk("public")->delete($url_clogo);
|
||||
@ -546,7 +564,13 @@ class ClientController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete client");
|
||||
UserLogs::insert(Auth::user()->id, "Delete company: ".$client[0]->c_name);
|
||||
|
||||
$log = [
|
||||
"module" => "Company",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete company: ".$client[0]->c_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
@ -28,7 +28,12 @@ class ConfDistributionController extends Controller
|
||||
{
|
||||
$data = [];
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Access Distribution Category menu");
|
||||
$log = [
|
||||
"module" => "Distribution Category",
|
||||
"action" => "View",
|
||||
"desc" => "Open Distribution Category menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view("menu_v1.configs.distribution_category", $data);
|
||||
}
|
||||
|
||||
@ -102,7 +107,13 @@ class ConfDistributionController extends Controller
|
||||
$apiResp = Responses::created("success " . ($tipe == "new" ? "add new" : "edit") . " distribution category");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, "".($tipe == "new" ? "Add new" : "Edit")." distribution category: ".$req->dc_name);
|
||||
|
||||
$log = [
|
||||
"module" => "Distribution Category",
|
||||
"action" => "".($tipe == "new" ? "Create" : "Update")."",
|
||||
"desc" => "".($tipe == "new" ? "Add new" : "Update")." distribution category: ".$req->dc_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
@ -204,6 +215,12 @@ class ConfDistributionController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete vehicle type");
|
||||
|
||||
$log = [
|
||||
"module" => "Distribution Category",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete distribution category: ".$dtl[0]->dc_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, "Delete distribution category: ".$dtl[0]->dc_name);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
|
||||
@ -28,7 +28,13 @@ class ConfPoolController extends Controller
|
||||
{
|
||||
$data = [];
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Access Pool menu");
|
||||
|
||||
$log = [
|
||||
"module" => "Pool",
|
||||
"action" => "View",
|
||||
"desc" => "Open Pool menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view("menu_v1.configs.pool", $data);
|
||||
}
|
||||
|
||||
@ -102,7 +108,13 @@ class ConfPoolController extends Controller
|
||||
$apiResp = Responses::created("success " . ($tipe == "new" ? "add new" : "edit") . " distribution category");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, ($tipe == "new" ? "Add new" : "Edit")." pool: ".$req->pool_name);
|
||||
|
||||
$log = [
|
||||
"module" => "Pool",
|
||||
"action" => "".($tipe == "new" ? "Create" : "Update")."",
|
||||
"desc" => "".($tipe == "new" ? "Add new" : "Update")." pool: ".$req->pool_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
@ -204,7 +216,13 @@ class ConfPoolController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete vehicle type");
|
||||
UserLogs::insert(Auth::user()->id, "Delete pool: ".$dtl[0]->pool_name);
|
||||
|
||||
$log = [
|
||||
"module" => "Pool",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete pool: ".$dtl[0]->pool_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
@ -28,7 +28,12 @@ class ConfTruckTypeController extends Controller
|
||||
{
|
||||
$data = [];
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Access Vehicle Type menu");
|
||||
$log = [
|
||||
"module" => "Vehicle Type",
|
||||
"action" => "View",
|
||||
"desc" => "Open Vehicle Type menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view("menu_v1.configs.truck_types", $data);
|
||||
}
|
||||
|
||||
@ -166,7 +171,14 @@ class ConfTruckTypeController extends Controller
|
||||
$apiResp = Responses::created("success add new vehicle type");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, "Add new vehicle type: ".$req->type_name);
|
||||
|
||||
|
||||
$log = [
|
||||
"module" => "Vehicle Type",
|
||||
"action" => "Create",
|
||||
"desc" => "Add new vehicle type: ".$req->type_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
@ -260,7 +272,13 @@ class ConfTruckTypeController extends Controller
|
||||
$apiResp = Responses::created("success update vehicle type");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, "Edit vehicle type: ".$req->type_name);
|
||||
|
||||
$log = [
|
||||
"module" => "Vehicle Type",
|
||||
"action" => "Update",
|
||||
"desc" => "Update vehicle type: ".$req->type_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
@ -315,7 +333,13 @@ class ConfTruckTypeController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete vehicle type");
|
||||
UserLogs::insert(Auth::user()->id, "Delete vehicle type: ".$truckType[0]->name);
|
||||
|
||||
$log = [
|
||||
"module" => "Vehicle Type",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete vehicle type: ".$truckType[0]->name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
@ -22,7 +22,13 @@ class DevicesController extends Controller
|
||||
$data = [
|
||||
"vhcs" => $vhcs,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, "Access Device menu");
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
"action" => "View",
|
||||
"desc" => "Open Device menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view("menu_v1.configs.devices", $data);
|
||||
}
|
||||
|
||||
@ -205,7 +211,13 @@ class DevicesController extends Controller
|
||||
$apiResp = Responses::created("success add new device");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, "Add new device : ".$device_id);
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
"action" => "Create",
|
||||
"desc" => "Add new device: ".$device_id,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
@ -358,7 +370,13 @@ class DevicesController extends Controller
|
||||
$apiResp = Responses::created("success update device");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, "Edit device : ".$device_id);
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
"action" => "Update",
|
||||
"desc" => "Edit device: ".$device_id,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
@ -408,7 +426,13 @@ class DevicesController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete device");
|
||||
UserLogs::insert(Auth::user()->id, "Delete device : ".$device[0]->device_id);
|
||||
|
||||
$log = [
|
||||
"module" => "Device",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete device : ".$device[0]->device_id,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
@ -253,7 +253,13 @@ class DriversController extends Controller
|
||||
$apiResp = Responses::created("success add new driver");
|
||||
|
||||
DB::commit();
|
||||
UserLogs::insert(Auth::user()->id, "Add new driver : ".$req->fullname);
|
||||
|
||||
$log = [
|
||||
"module" => "Driver",
|
||||
"action" => "View",
|
||||
"desc" => "Add new driver: ".$req->fullname,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
Storage::disk("public")->delete($url_ktp);
|
||||
@ -453,7 +459,13 @@ class DriversController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success update driver");
|
||||
UserLogs::insert(Auth::user()->id, "Edit driver : ".$req->fullname);
|
||||
|
||||
$log = [
|
||||
"module" => "Driver",
|
||||
"action" => "Update",
|
||||
"desc" => "Edit driver: ".$req->fullname,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
Storage::disk("public")->delete($url_ktp);
|
||||
@ -504,7 +516,13 @@ class DriversController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete driver");
|
||||
UserLogs::insert(Auth::user()->id, "Delete driver : ".$driver[0]->fullname);
|
||||
|
||||
$log = [
|
||||
"module" => "Driver",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete driver : ".$driver[0]->fullname,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
@ -37,7 +37,12 @@ class MenuController extends Controller
|
||||
{
|
||||
public function view_dashboard(Request $req)
|
||||
{
|
||||
UserLogs::insert($req->auth->uid, "Access Dashboard menu");
|
||||
$log = [
|
||||
"module" => "Dashboard",
|
||||
"action" => "View",
|
||||
"desc" => "Open Dashboard menu",
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
|
||||
$data = [
|
||||
"client_group" => Clients::getClientById($req->auth->client_group_id),
|
||||
@ -55,7 +60,12 @@ class MenuController extends Controller
|
||||
|
||||
public function view_drivers(Request $req)
|
||||
{
|
||||
UserLogs::insert($req->auth->uid, "Access Driver menu");
|
||||
$log = [
|
||||
"module" => "Driver",
|
||||
"action" => "View",
|
||||
"desc" => "Open Driver menu",
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
|
||||
$data = [
|
||||
"bloods" => Helper::listBloods(),
|
||||
@ -68,7 +78,12 @@ class MenuController extends Controller
|
||||
|
||||
public function view_vehicles(Request $req)
|
||||
{
|
||||
UserLogs::insert($req->auth->uid, "Access Vehicle menu");
|
||||
$log = [
|
||||
"module" => "Vehicle",
|
||||
"action" => "View",
|
||||
"desc" => "Open Vehicle menu",
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
|
||||
$listPool = DB::select("SELECT * FROM t_conf_pool WHERE dlt IS NULL ORDER BY pool_code ASC");
|
||||
$listDistribution = DB::select("SELECT * FROM t_conf_distribution_category WHERE dlt IS NULL ORDER BY dc_code ASC");
|
||||
@ -98,7 +113,12 @@ class MenuController extends Controller
|
||||
|
||||
public function view_transactions()
|
||||
{
|
||||
UserLogs::insert(Auth::user()->id, "Access Transactions menu");
|
||||
$log = [
|
||||
"module" => "Transactions",
|
||||
"action" => "View",
|
||||
"desc" => "Open Transactions menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
$data = [
|
||||
"availOrdToMerge" => Finance::availOrdToMerge(),
|
||||
@ -185,7 +205,12 @@ class MenuController extends Controller
|
||||
}
|
||||
public function view_transactions_view(Request $req)
|
||||
{
|
||||
UserLogs::insert($req->auth->uid, "Access Transactions ".$req->code);
|
||||
$log = [
|
||||
"module" => "Transactions",
|
||||
"action" => "View",
|
||||
"desc" => "Open Transactions menu",
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
|
||||
|
||||
$codes = explode(",", $req->code);
|
||||
@ -349,7 +374,12 @@ class MenuController extends Controller
|
||||
|
||||
public function view_logs_gps()
|
||||
{
|
||||
UserLogs::insert(Auth::user()->id, "Access Logs GPS menu");
|
||||
$log = [
|
||||
"module" => "Logs GPS",
|
||||
"action" => "View",
|
||||
"desc" => "Open Logs GPS menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return view("menu_v1.configs.index_logs_gps");
|
||||
}
|
||||
|
||||
@ -31,7 +31,12 @@ class ReportsController extends Controller
|
||||
'listNopol' => $listNopol,
|
||||
];
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Access Vehicle Trips Report menu");
|
||||
$log = [
|
||||
"module" => "Vehicle Trips Report",
|
||||
"action" => "View",
|
||||
"desc" => "Open Vehicle Trips Report menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view('menu_v1.reports.vehicle_trips', $data);
|
||||
}
|
||||
public function api_report_vehicle_trips_list(Request $req)
|
||||
@ -300,7 +305,12 @@ class ReportsController extends Controller
|
||||
'listNopol' => $listNopol,
|
||||
];
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Access Abnormalities Report menu");
|
||||
$log = [
|
||||
"module" => "Abnormalities Report",
|
||||
"action" => "View",
|
||||
"desc" => "Open Abnormalities Report menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view('menu_v1.reports.abnormalities', $data);
|
||||
}
|
||||
public function api_report_abnormalities_list(Request $req)
|
||||
|
||||
@ -36,7 +36,12 @@ class RolesController extends Controller
|
||||
}),
|
||||
];
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Access Role menu");
|
||||
$log = [
|
||||
"module" => "Role",
|
||||
"action" => "View",
|
||||
"desc" => "Open Role menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return view("menu_v1.roles", $data);
|
||||
}
|
||||
@ -123,7 +128,12 @@ class RolesController extends Controller
|
||||
|
||||
$apiResp = Responses::created("success add new role");
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Add new role : ".$req->name);
|
||||
$log = [
|
||||
"module" => "Role",
|
||||
"action" => "Create",
|
||||
"desc" => "Add new role : ".$req->name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
@ -163,7 +173,13 @@ class RolesController extends Controller
|
||||
app()[PermissionRegistrar::class]->forgetCachedPermissions();
|
||||
|
||||
$apiResp = Responses::created("success update role");
|
||||
UserLogs::insert(Auth::user()->id, "Edit role : ".$req->name);
|
||||
|
||||
$log = [
|
||||
"module" => "Role",
|
||||
"action" => "Update",
|
||||
"desc" => "Update role : ".$req->name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
@ -206,7 +222,13 @@ class RolesController extends Controller
|
||||
app()[PermissionRegistrar::class]->forgetCachedPermissions();
|
||||
|
||||
$apiResp = Responses::created("success delete role");
|
||||
UserLogs::insert(Auth::user()->id, "Delete role : ".$role[0]->name);
|
||||
|
||||
$log = [
|
||||
"module" => "Role",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete role : ".$role[0]->name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
65
app/Http/Controllers/UserLogsController.php
Normal file
65
app/Http/Controllers/UserLogsController.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Validator;
|
||||
use Hidehalo\Nanoid\Client as Nanoid;
|
||||
use Hidehalo\Nanoid\GeneratorInterface as NanoidInterface;
|
||||
use App\Responses;
|
||||
use App\Helper;
|
||||
use App\Models\ConfRates;
|
||||
use App\Models\ConfTruckTypes;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\UserLogs;
|
||||
use Auth;
|
||||
|
||||
class UserLogsController extends Controller
|
||||
{
|
||||
/**
|
||||
* View
|
||||
*/
|
||||
|
||||
public function view_user_logs(Request $req)
|
||||
{
|
||||
$data = [];
|
||||
|
||||
|
||||
$log = [
|
||||
"module" => "User Logs",
|
||||
"action" => "View",
|
||||
"desc" => "Open User Logs menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return view("menu_v1.userLogs", $data);
|
||||
}
|
||||
public function api_user_logs(Request $req)
|
||||
{
|
||||
try {
|
||||
$tgl0 = $req->tgl0;
|
||||
$tgl1 = $req->tgl1;
|
||||
|
||||
$d = [$tgl0, $tgl1];
|
||||
$list = DB::select("SELECT
|
||||
a.*, b.email
|
||||
FROM t_user_log a
|
||||
join t_users b on a.userId = b.id
|
||||
WHERE a.crt BETWEEN ? AND ?
|
||||
order by a.crt desc
|
||||
", $d);
|
||||
|
||||
$apiResp = Responses::success("success user logs");
|
||||
$apiResp["data"] = $list;
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
$apiResp = Responses::error($e->getMessage());
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -52,7 +52,12 @@ class UsersController extends Controller
|
||||
$data["clients"] = Clients::select2Client($req->auth->client_group_id);
|
||||
}
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Access User menu");
|
||||
$log = [
|
||||
"module" => "User",
|
||||
"action" => "View",
|
||||
"desc" => "Open User menu",
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return view("menu_v1.users", $data);
|
||||
}
|
||||
@ -333,7 +338,12 @@ class UsersController extends Controller
|
||||
|
||||
DB::commit();
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Add new user : ".$req->email);
|
||||
$log = [
|
||||
"module" => "User",
|
||||
"action" => "Create",
|
||||
"desc" => "Add new user : ".$req->email,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
@ -537,7 +547,12 @@ class UsersController extends Controller
|
||||
|
||||
DB::commit();
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Edit user : ".$req->email);
|
||||
$log = [
|
||||
"module" => "User",
|
||||
"action" => "Update",
|
||||
"desc" => "Update user : ".$req->email,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
@ -721,7 +736,12 @@ class UsersController extends Controller
|
||||
|
||||
DB::commit();
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Delete user : ".$getUser[0]->email);
|
||||
$log = [
|
||||
"module" => "User",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete user : ".$getUser[0]->email,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
@ -790,7 +810,7 @@ class UsersController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function view_user_logs(Request $req)
|
||||
public function view_user_logs1(Request $req)
|
||||
{
|
||||
$id = $req->id;
|
||||
|
||||
@ -801,7 +821,7 @@ class UsersController extends Controller
|
||||
// dd($dtl);
|
||||
return view('menu_v1._userLogs', $data);
|
||||
}
|
||||
public function api_user_logs(Request $req)
|
||||
public function api_user_logs1(Request $req)
|
||||
{
|
||||
try {
|
||||
$id = $req->id;
|
||||
|
||||
@ -332,7 +332,12 @@ class VehiclesController extends Controller
|
||||
|
||||
DB::commit();
|
||||
|
||||
UserLogs::insert(Auth::user()->id, "Add new vehicle : ".$req->vhc_name);
|
||||
$log = [
|
||||
"module" => "Vehicle",
|
||||
"action" => "Create",
|
||||
"desc" => "Add new vehicle: ".$req->vhc_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
@ -593,7 +598,13 @@ class VehiclesController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success update vehicle");
|
||||
UserLogs::insert(Auth::user()->id, "Edit vehicle : ".$req->vhc_name);
|
||||
|
||||
$log = [
|
||||
"module" => "Vehicle",
|
||||
"action" => "Update",
|
||||
"desc" => "Update vehicle: ".$req->vhc_name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
Storage::disk("public")->delete($url_fvhc);
|
||||
@ -651,7 +662,13 @@ class VehiclesController extends Controller
|
||||
DB::commit();
|
||||
|
||||
$apiResp = Responses::success("success delete vehicle");
|
||||
UserLogs::insert(Auth::user()->id, "Delete vehicle : ".$vehicle[0]->name);
|
||||
|
||||
$log = [
|
||||
"module" => "Vehicle",
|
||||
"action" => "Delete",
|
||||
"desc" => "Delete vehicle: ".$vehicle[0]->name,
|
||||
];
|
||||
UserLogs::insert(Auth::user()->id, $log);
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
} catch (\Exception $e) {
|
||||
DB::rollBack();
|
||||
|
||||
@ -29,7 +29,12 @@ class ZoneController extends Controller
|
||||
*/
|
||||
public function view_zone(Request $req)
|
||||
{
|
||||
UserLogs::insert($req->auth->uid, "Access Zone");
|
||||
$log = [
|
||||
"module" => "Zone",
|
||||
"action" => "View",
|
||||
"desc" => "Open Zone menu",
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
return view("menu_v1.zone");
|
||||
}
|
||||
|
||||
@ -358,7 +363,12 @@ class ZoneController extends Controller
|
||||
|
||||
$apiResp = Responses::created("success add new zone");
|
||||
|
||||
UserLogs::insert($req->auth->uid, "Add Zone ".$req->zone_name);
|
||||
$log = [
|
||||
"module" => "Zone",
|
||||
"action" => "Create",
|
||||
"desc" => "Add Zone ".$req->zone_name,
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
|
||||
DB::commit();
|
||||
return new Response($apiResp, $apiResp["meta"]["code"]);
|
||||
@ -486,7 +496,12 @@ class ZoneController extends Controller
|
||||
|
||||
Zone::updateZone($zid, $updtZone);
|
||||
|
||||
UserLogs::insert($req->auth->uid, "Update Zone ".$req->zone_name);
|
||||
$log = [
|
||||
"module" => "Zone",
|
||||
"action" => "Update",
|
||||
"desc" => "Update Zone ".$req->zone_name,
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
|
||||
DB::commit();
|
||||
|
||||
@ -531,7 +546,12 @@ class ZoneController extends Controller
|
||||
"dlt_by" => $req->auth->uid,
|
||||
]);
|
||||
|
||||
UserLogs::insert($req->auth->uid, "Delete Zone ".$zone[0]->name);
|
||||
$log = [
|
||||
"module" => "Zone",
|
||||
"action" => "Delete ",
|
||||
"desc" => "Delete Zone ".$zone[0]->name,
|
||||
];
|
||||
UserLogs::insert($req->auth->uid, $log);
|
||||
|
||||
DB::commit();
|
||||
|
||||
|
||||
@ -15,6 +15,6 @@ class UserLogs extends Model
|
||||
userId = ?,
|
||||
log = ?,
|
||||
crt = ?
|
||||
", [$userId, $log, $now]);
|
||||
", [$userId, json_encode($log), $now]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,7 +65,9 @@
|
||||
<thead>
|
||||
<tr class="">
|
||||
<th class="">Time</th>
|
||||
<th class="">Log</th>
|
||||
<th class="">Module</th>
|
||||
<th class="">Description</th>
|
||||
<th class="">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@ -128,7 +130,7 @@
|
||||
|
||||
// Fire new request
|
||||
DTable.lastAjax = $.ajax({
|
||||
url: `{{ route('api_user_logs') }}?
|
||||
url: `{{ route('api_user_logs1') }}?
|
||||
tgl0=${moment($('#tgl0').val(), "DD-MM-YYYY HH:mm").unix()}
|
||||
&tgl1=${moment($('#tgl1').val(), "DD-MM-YYYY HH:mm").unix()}
|
||||
&id={{$user->id}}
|
||||
@ -159,7 +161,43 @@
|
||||
}
|
||||
|
||||
},
|
||||
{ data: 'log'},
|
||||
{
|
||||
data: 'log',
|
||||
render: (data, type, row, meta) => {
|
||||
let log = JSON.parse(data);
|
||||
let module = log.module || '-';
|
||||
return module;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'log',
|
||||
render: (data, type, row, meta) => {
|
||||
let log = JSON.parse(data);
|
||||
let desc = log.desc || '-';
|
||||
return desc;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'log',
|
||||
render: (data, type, row, meta) => {
|
||||
let log = JSON.parse(data);
|
||||
let action = log.action || '-';
|
||||
|
||||
// use badge for action
|
||||
// action = `<span class="badge bg-secondary">${action}</span>`;
|
||||
let badge = '';
|
||||
if (action.toLowerCase() === 'create') {
|
||||
badge = `<span class="badge bg-success">${action}</span>`;
|
||||
} else if (action.toLowerCase() === 'update') {
|
||||
badge = `<span class="badge bg-warning">${action}</span>`;
|
||||
} else if (action.toLowerCase() === 'delete') {
|
||||
badge = `<span class="badge bg-danger">${action}</span>`;
|
||||
} else {
|
||||
badge = `<span class="badge bg-secondary">${action}</span>`;
|
||||
}
|
||||
return badge;
|
||||
}
|
||||
},
|
||||
],
|
||||
paging: false,
|
||||
});
|
||||
|
||||
231
resources/views/menu_v1/userLogs.blade.php
Normal file
231
resources/views/menu_v1/userLogs.blade.php
Normal file
@ -0,0 +1,231 @@
|
||||
@php
|
||||
$user_role = Auth::user()->role;
|
||||
@endphp
|
||||
|
||||
@extends('app.app')
|
||||
|
||||
@section('title')
|
||||
Vehicles Trip Report
|
||||
@endsection
|
||||
|
||||
@section('customcss')
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
|
||||
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
|
||||
crossorigin=""
|
||||
/>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="container-fluid">
|
||||
<div class="content">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="row d-flex align-items-center">
|
||||
<div class="col-3">
|
||||
<p class="card-title text-bold mb-0">User Logs</p>
|
||||
</div>
|
||||
<div class="col-auto text-end ps-0">
|
||||
<!-- <button class="btn btn-sm btn-danger">Download</button> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- filter -->
|
||||
<div class="row">
|
||||
<div class="col-2">
|
||||
<div class="form-group">
|
||||
<label class="text-muted">From</label>
|
||||
<!-- default today -->
|
||||
<!-- <input class="form-control" id="tgl0" value="02-09-2025 00:00"> -->
|
||||
<input class="form-control" id="tgl0" value="{{ date('d-m-Y 00:00') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<div class="form-group">
|
||||
<label class="text-muted">To</label>
|
||||
<!-- <input class="form-control" id="tgl1" value="02-09-2025 23:00"> -->
|
||||
<input class="form-control" id="tgl1" value="{{ date('d-m-Y 23:59') }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 d-flex align-items-end">
|
||||
<button class="btn btn-primary" id="submitFilter">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive p-3">
|
||||
<table id="tLogs" class="table table-hover dataTable w-100">
|
||||
<thead>
|
||||
<tr class="">
|
||||
<th class="">Time</th>
|
||||
<th class="">User</th>
|
||||
<th class="">Module</th>
|
||||
<th class="">Description</th>
|
||||
<th class="">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('customjs')
|
||||
<script src="{{ asset('assets/js/load-image.all.min.js') }}"></script>
|
||||
<!-- DataTables Buttons + JSZip (for Excel export) -->
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.2/js/dataTables.buttons.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
|
||||
<script src="https://cdn.datatables.net/buttons/2.4.2/js/buttons.html5.min.js"></script>
|
||||
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js" integrity="sha512-ozq8xQKq6urvuU6jNgkfqAmT7jKN2XumbrX1JiB3TnF7tI48DPI4Gy1GXKD/V3EExgAs1V+pRO7vwtS1LHg0Gw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> -->
|
||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
|
||||
<script src="https://unpkg.com/leaflet-routing-machine@3.2.12/dist/leaflet-routing-machine.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
||||
<script src="{{ asset('assets/vendor/printThis.js') }}"></script>
|
||||
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
const Wrapper = {
|
||||
activate: function() {
|
||||
console.log("activate");
|
||||
|
||||
Wrapper.init();
|
||||
Wrapper.event();
|
||||
DTable.activate();
|
||||
},
|
||||
init: ()=>{
|
||||
$('.time').each(function () {
|
||||
const unix = parseInt($(this).text().trim()) + AppState.TIMEFIX;
|
||||
$(this).text(moment.unix(unix).format('DD MMM YYYY HH:mm:ss'));
|
||||
});
|
||||
$('#tgl0, #tgl1').datetimepicker({
|
||||
format:'d-m-Y H:i',
|
||||
defaultTime:'00:00',
|
||||
closeOnDateSelect: true,
|
||||
// mask:true
|
||||
});
|
||||
},
|
||||
event: function() {
|
||||
$('#submitFilter').on('click', function() {
|
||||
DTable.reload();
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
const DTable = {
|
||||
table: null,
|
||||
lastAjax: null, // keep track of the last ajax request
|
||||
activate: function() {
|
||||
DTable.reload();
|
||||
},
|
||||
reload: function() {
|
||||
console.log("DTable.reload");
|
||||
// Abort the last request if it's still running
|
||||
if (DTable.lastAjax) {
|
||||
DTable.lastAjax.abort();
|
||||
}
|
||||
if (DTable.table) {
|
||||
// If table already exists → reload
|
||||
DTable.table.ajax.reload();
|
||||
return;
|
||||
}
|
||||
|
||||
DTable.table = $('#tLogs').DataTable({
|
||||
searching: false, // 🔹 remove search box
|
||||
ordering: false, // 🔹 disable sorting for all columns
|
||||
processing: true,
|
||||
serverSide: false,
|
||||
bLengthChange: true,
|
||||
deferRender: true,
|
||||
destroy: true,
|
||||
ajax: function(data, callback, settings) {
|
||||
// Abort previous
|
||||
if (DTable.lastAjax) {
|
||||
DTable.lastAjax.abort();
|
||||
}
|
||||
|
||||
// Fire new request
|
||||
DTable.lastAjax = $.ajax({
|
||||
url: `{{ route('api_user_logs') }}?
|
||||
tgl0=${moment($('#tgl0').val(), "DD-MM-YYYY HH:mm").unix()}
|
||||
&tgl1=${moment($('#tgl1').val(), "DD-MM-YYYY HH:mm").unix()}
|
||||
`,
|
||||
type: 'GET',
|
||||
success: function(json) {
|
||||
callback(json);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
if (status !== 'abort') {
|
||||
console.error("AJAX error:", error);
|
||||
}
|
||||
},
|
||||
complete: function() {
|
||||
DTable.lastAjax = null;
|
||||
}
|
||||
});
|
||||
},
|
||||
deferRender: true,
|
||||
columns: [
|
||||
{
|
||||
data: 'crt',
|
||||
render: (data, type, row, meta) => {
|
||||
// let addr = row
|
||||
return `
|
||||
${moment.unix(data).format('DD MMM YYYY HH:mm:ss')}<br>
|
||||
`;
|
||||
}
|
||||
|
||||
},
|
||||
{ data: 'email' },
|
||||
{
|
||||
data: 'log',
|
||||
render: (data, type, row, meta) => {
|
||||
let log = JSON.parse(data);
|
||||
let module = log.module || '-';
|
||||
return module;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'log',
|
||||
render: (data, type, row, meta) => {
|
||||
let log = JSON.parse(data);
|
||||
let desc = log.desc || '-';
|
||||
return desc;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'log',
|
||||
render: (data, type, row, meta) => {
|
||||
let log = JSON.parse(data);
|
||||
let action = log.action || '-';
|
||||
|
||||
// use badge for action
|
||||
// action = `<span class="badge bg-secondary">${action}</span>`;
|
||||
let badge = '';
|
||||
if (action.toLowerCase() === 'create') {
|
||||
badge = `<span class="badge bg-success">${action}</span>`;
|
||||
} else if (action.toLowerCase() === 'update') {
|
||||
badge = `<span class="badge bg-warning">${action}</span>`;
|
||||
} else if (action.toLowerCase() === 'delete') {
|
||||
badge = `<span class="badge bg-danger">${action}</span>`;
|
||||
} else {
|
||||
badge = `<span class="badge bg-secondary">${action}</span>`;
|
||||
}
|
||||
return badge;
|
||||
}
|
||||
},
|
||||
],
|
||||
paging: false,
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
Wrapper.activate();
|
||||
</script>
|
||||
@endsection
|
||||
@ -900,7 +900,7 @@
|
||||
|
||||
e.preventDefault();
|
||||
const id = $(this).data('id');
|
||||
$('#mdlUserLogs').empty().load("{{ route('view_user_logs') }}", `id=${id}`, () => {
|
||||
$('#mdlUserLogs').empty().load("{{ route('view_user_logs1') }}", `id=${id}`, () => {
|
||||
$('#mdlUserLogs').modal('show')
|
||||
})
|
||||
|
||||
|
||||
@ -116,6 +116,13 @@
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
@can('user_logs.view')
|
||||
<li class="nav-item {{ Request::segment(1) == 'user_logs' ? 'active' : '' }}">
|
||||
<a class="nav-link d-flex align-items-center text-capitalize" aria-current="page" href="{{ route('view_user_logs') }}">
|
||||
User Logs
|
||||
</a>
|
||||
</li>
|
||||
@endcan
|
||||
|
||||
@can('role.view')
|
||||
<li class="nav-item {{ Request::segment(1) == 'roles' ? 'active' : '' }}">
|
||||
|
||||
@ -120,8 +120,11 @@ Route::middleware(["auth", "auth.user"])->group(function () {
|
||||
Route::get("/users", "UsersController@view_users")
|
||||
->name("view_users")
|
||||
->middleware("permission:user.view");
|
||||
Route::get("/users/logs", "UsersController@view_user_logs")->name("view_user_logs");
|
||||
Route::get("/api/users/logs", "UsersController@api_user_logs")->name("api_user_logs");
|
||||
Route::get("/users/logs", "UsersController@view_user_logs1")->name("view_user_logs1");
|
||||
Route::get("/api/users/logs", "UsersController@api_user_logs1")->name("api_user_logs1");
|
||||
|
||||
Route::get("/user-logs", "UserLogsController@view_user_logs")->name("view_user_logs");
|
||||
Route::get("/api/user-logs", "UserLogsController@api_user_logs")->name("api_user_logs");
|
||||
|
||||
Route::get("/roles", "RolesController@view")
|
||||
->name("view_roles")
|
||||
|
||||
Reference in New Issue
Block a user