m3 Security Fixes

This commit is contained in:
Mark Gregory
2026-09-16 17:38:23 +01:00
parent 3407626e92
commit 746fcaa8b1
6 changed files with 25 additions and 263 deletions
+1 -1
View File
@@ -295,7 +295,7 @@ class Helper
$goodString = trim($StrTosanityze);
$goodString = str_replace("'", '', $goodString);
$goodString = preg_replace('/\x{f0e0}/u', '', $goodString);
$goodString = str_replace("\u{f0e0}", '', $goodString);
$goodString = preg_replace('/\\\\u201[0-9A-F]+/i', '', $goodString);
$goodString = str_replace($badChars, '', $goodString);
$goodString = iconv('UTF-8', 'ISO-8859-1//IGNORE', $goodString);
@@ -248,6 +248,9 @@ class M3Controller extends Controller
$this->insertToICM666M2($Other, $commentData);
}
break;
default:
break;
}
}
}
@@ -526,11 +529,23 @@ class M3Controller extends Controller
}
}
public function show($id) {}
public function show($id)
{
// This resource endpoint is intentionally unsupported.
}
public function edit($id) {}
public function edit($id)
{
// This resource endpoint is intentionally unsupported.
}
public function update(Request $request, $id) {}
public function update(Request $request, $id)
{
// This resource endpoint is intentionally unsupported.
}
public function destroy($id) {}
public function destroy($id)
{
// This resource endpoint is intentionally unsupported.
}
}
@@ -108,7 +108,7 @@ class TwoShipAPIs extends Controller
curl_setopt($ch, CURLOPT_URL, $ShipOnHoldOrder_url);
curl_setopt($ch, CURLOPT_VERBOSE, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
// When CURLOPT_SSL_VERIFYPEER is enabled (value=1), and the verification fails to prove that the certificate is authentic, the connection fails.
// When the option is zero, the peer certificate verification succeeds regardless.
@@ -72,6 +72,9 @@ class whsePerfDetailsController extends Controller
case 'i':
$stmt2 = $io;
break;
default:
$stmt2 = $all;
break;
}
// phpinfo();
include $_SERVER['DOCUMENT_ROOT'] . '/../../KPI2_update711M_SQL_main.inc.php';
@@ -1,255 +0,0 @@
@extends('m3::liberty-theme.layout.main')
@section('title')
Solon Sentinel Portal - Warehouse Performance Metrics
@endsection
@section('content')
<!-- /.row -->
<div class="container-fluid px-4">
<h1 class="mt-4">Warehouse Performance Metrics</h1>
<div class="card mb-4">
<!-- Add to class the justify content between and align items center -->
<div class="card-header d-flex justify-content-between align-items-center">
@if($power_user[0]->R428PWRUSR=="Y")
<!-- <button name="userAdd" type="button" class="btn btn-sm btn-info userAdd_click" id="userAdd_click" title="Add new user">Add User</button> -->
@endif
<!-- Status Filter Dropdown -->
<!-- <div class="filter-container">
<label for="statusFilter">Filter by Status:</label>
<select id="statusFilter" class="status-filter">
<option value="">All Records</option>
<option value="Active" selected>Active Only</option>
<option value="Inactive">Inactive Only</option>
</select>
</div> -->
</div>
<div class="card-body">
<div class="table-responsive">
<!-- <table class="table table-striped table-bordered table-hover table-sm" id="datatablesSimple5" style="width:100%"> -->
<table class="table table-striped table-bordered table-hover table-sm" style="width:100%">
<thead>
<tr>
<th>For month</th>
<th>{{ date('Y-m',strtotime($date_in)) }}</th>
<th align="center" colspan=4>All</th>
<th></th>
<th align="center" colspan=4>Non-interco and Ground/Air</th>
<th></th>
<th align="center" colspan=4>Parcel</th>
<th></th>
<th align="center" colspan=2>Intercompany & Ocean</th>
</tr>
<tr>
<th></th>
<th></th>
<th align="right">A1+C1</th>
<th align="right">B</th>
<th align="right">A3+C2</th>
<th align="right"></th>
<th></th>
<th align="right">A1+C1</th>
<th align="right">B</th>
<th align="right">A3+C2</th>
<th align="right"></th>
<th></th>
<th align="right">A1+C1</th>
<th align="right">B</th>
<th align="right">A3+C2</th>
<th align="right"></th>
<th></th>
<th align="right">A1+C1</th>
<th align="right">A3+C2</th>
</tr>
<tr>
<th></th>
<th></th>
<th align="right">Closed</th>
<th align="right">Closed (Cherry)</th>
<th align="right">Still Open</th>
<th align="right">OTTC</th>
<th></th>
<th align="right">Closed</th>
<th align="right">Closed (Cherry)</th>
<th align="right">Still Open</th>
<th align="right">OTTC</th>
<th></th>
<th align="right">Closed</th>
<th align="right">Closed (Cherry)</th>
<th align="right">Still Open</th>
<th align="right">OTTC</th>
<th></th>
<th align="right">Closed</th>
<th align="right">Still Open</th>
</tr>
<tr>
<th colspan=19></th>
</tr>
<tr>
<th>Targets</th>
<th colspan=4></th>
<th align="right"><input type=text name=ALLtgtnotes value={{ $pct_array['all_notes'] }}></th>
<th colspan=4></th>
<th align="right"><input type=text name=LTLtgtnotes value={{ $pct_array['ltl_notes'] }}></th>
<th colspan=4></th>
<th align="right"><input type=text name=PARCELtgtnotes value={{ $pct_array['parcel_notes'] }}></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<th></th>
<th colspan=4></th>
<th align="right"><input type=text name=ALLtgtdlr value={{ $pct_array['all_dollars'] }}></th>
<th colspan=4></th>
<th align="right"><input type=text name=LTLtgtdlr value={{ $pct_array['ltl_dollars'] }}></th>
<th colspan=4></th>
<th align="right"><input type=text name=PARCELtgtdlr value={{ $pct_array['parcel_dollars'] }}></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<th></th>
<th colspan=4></th>
<th align="right"><input type=text name=ALLtgtwgt value={{ $pct_array['all_weight'] }}></th>
<th colspan=4></th>
<th align="right"><input type=text name=LTLtgtwgt value={{ $pct_array['ltl_weight'] }}></th>
<th colspan=4></th>
<th align="right"><input type=text name=PARCELtgtwgt value={{ $pct_array['parcel_weight'] }}></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($ICM711M as $key=>$val)
<tr>
<td>{{$val->AVDATE}}</td>
<td></td>
<td align="left">Deliv Notes</td>
<td align="right">{{$val->AVANOTESCL}}</td>
<td align="right">{{$val->AVANOTESCH}}</td>
<td align="right">{{$val->AVANOTESOP}}</td>
<td align="right">{{ (($val->AVANOTESCL+$val->AVANOTESCH+$val->AVANOTESOP)!='0'?number_format(($val->AVANOTESCL+$val->AVANOTESCH)/($val->AVANOTESCL+$val->AVANOTESCH+$val->AVANOTESOP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVLNOTESCL}}</td>
<td align="right">{{$val->AVLNOTESCH}}</td>
<td align="right">{{$val->AVLNOTESOP}}</td>
<td align="right">{{ (($val->AVLNOTESCL+$val->AVLNOTESCH+$val->AVLNOTESOP)!='0'?number_format(($val->AVLNOTESCL+$val->AVLNOTESCH)/($val->AVLNOTESCL+$val->AVLNOTESCH+$val->AVLNOTESOP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVPNOTESCL}}</td>
<td align="right">{{$val->AVPNOTESCH}}</td>
<td align="right">{{$val->AVPNOTESOP}}</td>
<td align="right">{{ (($val->AVPNOTESCL+$val->AVPNOTESCH+$val->AVPNOTESOP)!='0'?number_format(($val->AVPNOTESCL+$val->AVPNOTESCH)/($val->AVPNOTESCL+$val->AVPNOTESCH+$val->AVPNOTESOP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVINOTESCL}}</td>
<td align="right">{{$val->AVINOTESOP}}</td>
</tr>
<tr>
<td></td>
<td align="left">Dollars</td>
<td></td>
<td align="right">{{$val->AVADLRCL}}</td>
<td align="right">{{$val->AVADLRCH}}</td>
<td align="right">{{$val->AVADLROP}}</td>
<td align="right">{{ (($val->AVADLRCL+$val->AVADLRCH+$val->AVADLROP)!='0'?number_format(($val->AVADLRCL+$val->AVADLRCH)/($val->AVADLRCL+$val->AVADLRCH+$val->AVADLROP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVLDLRCL}}</td>
<td align="right">{{$val->AVLDLRCH}}</td>
<td align="right">{{$val->AVLDLROP}}</td>
<td align="right">{{ (($val->AVLDLRCL+$val->AVLDLRCH+$val->AVLDLROP)!='0'?number_format(($val->AVLDLRCL+$val->AVLDLRCH)/($val->AVLDLRCL+$val->AVLDLRCH+$val->AVLDLROP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVPDLRCL}}</td>
<td align="right">{{$val->AVPDLRCH}}</td>
<td align="right">{{$val->AVPDLROP}}</td>
<td align="right">{{ (($val->AAVPDLRCL+$val->AVPDLRCH+$val->AAVPDLROP)!='0'?number_format(($val->AVPDLRCL+$val->AVPDLRCH)/($val->AVPDLRCL+$val->AVPDLRCH+$val->AVPDLROP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVIDLRCL}}</td>
<td align="right">{{$val->AVIDLROP}}</td>
</tr>
<tr>
<td></td>
<td align="left">Weight</td>
<td></td>
<td align="right">{{$val->AVAWGTCL}}</td>
<td align="right">{{$val->AVAWGTCH}}</td>
<td align="right">{{$val->AVAWGTOP}}</td>
<td align="right">{{ (($val->AVAWGTCL+$val->AVAWGTCH+$val->AVAWGTOP)!='0'?number_format(($val->AVAWGTCL+$val->AVAWGTCH)/($val->AVAWGTCL+$val->AVAWGTCH+$val->AVAWGTOP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVLWGTCL}}</td>
<td align="right">{{$val->AVLWGTCH}}</td>
<td align="right">{{$val->AVLWGTOP}}</td>
<td align="right">{{ (($val->AVLWGTCL+$val->AVLWGTCH+$val->AVLWGTOP)!='0'?number_format(($val->AVLWGTCL+$val->AVLWGTCH)/($val->AVLWGTCL+$val->AVLWGTCH+$val->AVLWGTOP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVPWGTCL}}</td>
<td align="right">{{$val->AVPWGTCH}}</td>
<td align="right">{{$val->AVPWGTOP}}</td>
<td align="right">{{ (($val->AVPWGTCL+$val->AVPWGTCH+$val->AVPWGTOP)!='0'?number_format(($val->AVPWGTCL+$val->AVPWGTCH)/($val->AVPWGTCL+$val->AVPWGTCH+$val->AVPWGTOP)*100,0):'0') }}</td>
<td></td>
<td align="right">{{$val->AVIWGTCL}}</td>
<td align="right">{{$val->AVIWGTOP}}</td>
</tr>
<tr>
<td colspan=19></td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
$(document).ready(function() {
// DataTable init
var myTable = $('#datatablesSimple5').DataTable({
"aaSorting": false,
"lengthMenu": [ [10,25,50,-1], [10,25,50,"All"] ],
"sPaginationType": "full_numbers",
"dom": 'Bfrtip', // Needs button container
"responsive": true,
"orderCellsTop": true,
"order": [ [1, 'desc'] ],
"pageLength": 30,
"columnDefs": [
{
orderable: true,
searchable: true,
targets: -1
}
],
// MAK
"initComplete": function() {
// Apply initial filter for Active records only
this.api().column(4).search('^Active$', true, false).draw();
}
});
// MAK
// Status filter dropdown change event
$('#statusFilter').on('change', function() {
var selectedStatus = $(this).val();
if (selectedStatus == '') {
// Show all records
myTable.column(4).search('').draw();
} else {
// Filter by selected status
myTable.column(4).search('^' + selectedStatus + '$', true, false).draw();
}
});
});
</script>
@endsection
+1 -2
View File
@@ -3,5 +3,4 @@ PATH="/opt/homebrew/opt/openjdk/bin:$PATH" \
sonar-scanner \
-Dsonar.projectKey=Warehouse-Management-System \
-Dsonar.sources=. \
-Dsonar.host.url=http://192.168.1.2:9001 \
-Dsonar.token="$SONAR_TOKEN"
-Dsonar.host.url=http://192.168.1.2:9001