after a series of bug fixes plus Non MNO logic for Sender IDs, unfinished leave management and holiday modules

This commit is contained in:
Kwesi Banson Jnr
2025-03-19 10:33:04 +00:00
parent 6cede6d980
commit cf39ff2682
112 changed files with 26812 additions and 496 deletions

View File

@@ -0,0 +1,156 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models;
use Session;
class VpnController extends Controller{
public function indexBK(){
$result = Models\VpnConfig::where('partner_type', 'mno')->with('mno_info')->paginate(15);
// dd($result);
$data = [
'page_title' => 'infrastructure: VPN',
'vpn_list' => $result
];
// dd($result);
return view('vpn.index', $data);
}
public function indexBKK(){
$result = Models\VpnConfig::get();
// dd($result);
$data = [
'page_title' => 'infrastructure: VPN',
'vpn_list' => $result
];
return view('vpn.index_test', $data);
}
public function index(){
$data = [
'page_title' => 'Infrastructure: VPN',
'current_user' => session('current_user')
];
return view('vpn.index_rawjs', $data);
}
public function getVpnListJsonRawJs(Request $request){
// dd($request->has('keyword') && $request->keyword == true);
if($request->has('keyword') && $request->keyword == true){
//'vpn_configs.client_id',
$keyword = $request->keyword;
$vpn_list_arr = \DB::table('vpn_configs')
->join('auth_users', 'auth_users.id', '=', 'vpn_configs.user_id')
->join('network_operators', 'network_operators.id', '=', 'vpn_configs.mno_id')
->select('network_operators.id', 'vpn_configs.date_received', 'network_operators.name AS mnoName', 'network_operators.country', 'auth_users.name As username', 'vpn_configs.vpn_device', 'vpn_configs.mno_id', 'vpn_configs.partner_type', 'vpn_configs.remote_peer_ip', 'vpn_configs.local_access_control_list', 'vpn_configs.partner_access_control_list')
->whereRaw("network_operators.name LIKE '%$keyword%' OR vpn_configs.vpn_device LIKE '%$keyword%' OR network_operators.country LIKE '%$keyword%' OR vpn_configs.remote_peer_ip LIKE '%$keyword%' OR vpn_configs.local_access_control_list like '%$keyword%' OR vpn_configs.partner_access_control_list LIKE '%$keyword%'")
->paginate(10);
}
else{
$vpn_list_arr = \DB::table('vpn_configs')
->join('auth_users', 'auth_users.id', '=', 'vpn_configs.user_id')
->join('network_operators', 'network_operators.id', '=', 'vpn_configs.mno_id')
->select('vpn_configs.id', 'vpn_configs.date_received', 'network_operators.name AS mnoName', 'network_operators.country', 'auth_users.name As username', 'vpn_configs.vpn_device', 'vpn_configs.mno_id', 'vpn_configs.partner_type', 'vpn_configs.remote_peer_ip', 'vpn_configs.local_access_control_list', 'vpn_configs.partner_access_control_list')
->paginate(10);
}
return response()->json($vpn_list_arr);
}
public function create(){
$partner_type_arr = ['client' => 'client', 'mno' => 'mno'];
$partners_arr = [];
$services = Models\Service::pluck('name', 'name');
$data = [
'page_title' => 'infrastructure: VPN',
'partner_type_arr' => $partner_type_arr,
'partners_arr' => $partners_arr,
'services_arr' => $services
];
return view('vpn.create', $data);
}
public function edit($id){
$vpn = Models\VpnConfig::find($id);
$partner_type_arr = ['client' => 'client', 'mno' => 'mno'];
$partners_arr = [];
$services = Models\Service::pluck('name', 'name');
$data = [
'vpn' => $vpn,
'page_title' => 'infrastructure: VPN',
'partner_type_arr' => $partner_type_arr,
'partners_arr' => $partners_arr,
'services_arr' => $services
];
return view('vpn.create', $data);
}
public function store(Request $request){
$request->validate([
'partner_type_id' => 'required',
'vpn_device' => 'sometimes',
'remote_peer_ip' => 'required',
'partner_access_control_list' => 'required',
'local_access_control_list' => 'required',
'partner_type' => 'required',
'phase_1_raw_settings' => 'sometimes',
'phase_2_raw_settings' => 'sometimes',
]);
// dd($request->all());
$vpn_configs_arr = $request->except('_token', 'vpn_form');
if ($request->partner_type == 'mno') {
$vpn_configs_arr['mno_id'] = $request->partner_type_id;
}
elseif($request->partner_type == 'client'){
$vpn_configs_arr['client_id'] = $request->partner_type_id;
}
else{
Session::flash('error_message', 'Your request could not be handled at this time. Try again');
return redirect(url('infrastructure/vpn'));
}
$vpn_configs_arr['user_id'] = session('current_user.id');
// dd($vpn_configs_arr);
if ($request->hasFile('vpn_form')) {
if ($request->file('vpn_form')->isValid()) {
$filename = "erp_" . time() . "." . $request->vpn_form->extension();
$request->vpn_form->storeAs('vpn_form_files', $filename, 'public');
$document_arr['vpn_form'] = json_encode([$filename]);
$vpn_configs_arr['partner_vpn_form'] = $filename;
}
}
$result = Models\VpnConfig::create($vpn_configs_arr);
Session::flash('success_message', 'VPN Configs successfully added');
return redirect(url('infrastructure/vpn'));
}
public function getMNOandClient($type){
if ($type == 'mno') {
$data_arr = \DB::table('network_operators')->Select(\DB::raw('id, concat(name, " (", country, ")") AS partner'))->orderBy('name')->get()->toArray();
}
elseif ($type == 'client') {
$data_arr = \DB::table('clients')->Select(\DB::raw('id, concat(name, " (", country, ")") AS partner'))->orderBy('name')->get()->toArray();
}
else{
return response()->json(['code' => 3, 'msg' => 'invalid request']);
}
return response()->json(['code' => 1, 'msg' => 'success', 'result' => $data_arr]);
}
public function getPhaseOneTwo($vpn_list_id){
$vpn = Models\VpnConfig::find($vpn_list_id);
if ($vpn) {
// code...
$data = ['code' => 1, 'msg' => 'success', 'result' => $vpn];
}
else{
$data = ['code' => 3, 'msg' => 'request could not be handled'];
}
return response()->json($data);
}
}