diff --git a/.htaccess b/.htaccess index c9db48e..cf3c184 100755 --- a/.htaccess +++ b/.htaccess @@ -5,28 +5,6 @@ Options -Indexes # Rewrite engine # ---------------------------------------------------------------------- - -## ADDED for - block any script execution inside folder of public - - Deny from all - # Disable PHP engine - - php_flag engine off - - - # Disable CGI and other executable handlers - Options -ExecCGI - AddHandler cgi-script .php .pl .py .jsp .asp .sh .cgi - - # Block access to any script-like files entirely - - ForceType text/plain - #Order allow,deny - Deny from all - - - - # Turning on the rewrite engine is necessary for the following rules and features. # FollowSymLinks must be enabled for this to work. diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4c02e4f..cccdc3d 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -551,7 +551,7 @@ $routes->get("getBackToEnrolledDetails", "EmployeeRestController::getBackToEnrol //crone job $routes->cli('cli/enrollOpendAndClose', 'DashboardController::updatePolicyEnrollmentStatus'); $routes->cli("cli/sendCroneRemainderMail", "DashboardController::sendCroneRemainderMail"); - +$routes->cli('cli/update-emp-policy-status', 'ClientController::updateEmpAndPolicyStatus'); $routes->get('enrollOpendAndClose', 'DashboardController::updatePolicyEnrollmentStatus'); $routes->get("sendCroneRemainderMail", "DashboardController::sendCroneRemainderMail"); // $routes->get("getEmployeePolicy", "EmployeeRestController::getEmployeePolicy"); diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 8b9785d..936d914 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -500,7 +500,7 @@ class EmployeeController extends AdminController } } - public function getExcelFileErrors($file_id, $retun_type) + public function getExcelFileErrors($file_id, $retun_type = null) { // $file_id = $this->request->uri->getSegment(3); $empServiceController = new EmployeeServiceController(); diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index e810120..d8ffc24 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -235,8 +235,17 @@ class EmployeeRestController extends AdminController try { $data = $this->request->getJSON(); + $clientPolicyData = $this->clientPolicyModel->where('id',$data[0]->client_policy_id) + ->where('is_active', 1) + ->first(); + + if(in_array($clientPolicyData['policy_type_id'], [3,4,5])){ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($clientPolicyData['base_policy'], $data[0]->emp_code); + }else{ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id, $data[0]->emp_code); + } + //enrolment check - $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($data[0]->client_policy_id, $data[0]->emp_code); if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => [],'message' => 'Enrollment closed.'], 200); } @@ -308,7 +317,7 @@ class EmployeeRestController extends AdminController } } } catch (\Exception $e) { - return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage(),'message' => "Action failed."], 500); + return $this->respond(['status' => 'failed','code' => 500,'data' => $e->getMessage() . $e->getLine(),'message' => "Action failed."], 500); } } @@ -395,6 +404,8 @@ class EmployeeRestController extends AdminController }else{ + $enrollment_dates = $this->getEnrollmentDates($client_policy_id, $emp_code); + $data['employee_id']= $employee_id; $data['client_policy_id']= $client_policy_id; $data['basic_cover_si']= $basic_cover_si; @@ -405,6 +416,9 @@ class EmployeeRestController extends AdminController if(!empty($other_employee_policy_data)){ $data['enrollment_open_date']= $other_employee_policy_data['enrollment_open_date'] ?? null; $data['enrollment_close_date']= $other_employee_policy_data['enrollment_close_date'] ?? null; + }else{ + $data['enrollment_open_date'] = $enrollment_dates['enrollment_open_date'] ?? null; + $data['enrollment_close_date'] = $enrollment_dates['enrollment_close_date'] ?? null; } // dd($data); @@ -550,7 +564,7 @@ class EmployeeRestController extends AdminController $this->employeeModel->where('id', $this->request->getGet('id') ) ->where('is_active', 1 ) - ->set(array('is_active'=> 0 )) + ->set(['emp_status' => 'truncated', 'is_active' => 0]) ->update(); } @@ -564,7 +578,7 @@ class EmployeeRestController extends AdminController $query->where('client_policy_id', $clientPolicyId); } - $query->set(['is_active' => 0])->update(); + $query->set(['status' => 'truncated', 'is_active' => 0])->update(); return $this->respond(['status' => 'success','code' => 200,'data' =>[] ], 200); @@ -590,7 +604,17 @@ class EmployeeRestController extends AdminController // print_r($requestData); // dd($requestData); - $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id, $requestData[0]->emp_code); + + $clientPolicyData = $this->clientPolicyModel->where('id',$requestData[0]->client_policy_id) + ->where('is_active', 1) + ->first(); + + if(in_array($clientPolicyData['policy_type_id'], [3,4,5])){ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($clientPolicyData['base_policy'], $requestData[0]->emp_code); + }else{ + $openForEnrollment = $this->findThePolicyIsOpenForEnrollment($requestData[0]->client_policy_id, $requestData[0]->emp_code); + } + if($openForEnrollment == false){ return $this->respond(['status' => 'failed','code' => 404,'data' => 'Enrollment closed'], 404); } foreach ($requestData as $key => $value) @@ -600,6 +624,7 @@ class EmployeeRestController extends AdminController ->where('client_policy_id', $value->client_policy_id) ->where('is_active', 1 ) ->findAll(); + // dd($checkIfExist); if ($checkIfExist) { @@ -608,10 +633,14 @@ class EmployeeRestController extends AdminController }else{ + $enrollment_dates = $this->getEnrollmentDates($value->client_policy_id, $requestData[0]->emp_code); + $data['employee_id']= $value->employee_id; $data['client_policy_id']= $value->client_policy_id; $data['basic_cover_si']= $value->basic_cover_si; $data['status'] = 'draft'; + $data['enrollment_open_date'] = $enrollment_dates['enrollment_open_date'] ?? null; + $data['enrollment_close_date'] = $enrollment_dates['enrollment_close_date'] ?? null; $this->employeePolicyModel->insert($data); } @@ -1631,8 +1660,8 @@ class EmployeeRestController extends AdminController } if(!empty($result) && $this->request->getGet('policy') == 'GMC'){ - // return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200); - echo json_encode(['status' => 'success','code' => 200,'data' => $result], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); + return $this->respond(['status' => 'success','code' => 200,'data' => $result], 200); + // echo json_encode(['status' => 'success','code' => 200,'data' => $result], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); }else{ return $this->respond(['status' => 'success','code' => 200,'data' => []], 200); } @@ -2138,14 +2167,14 @@ class EmployeeRestController extends AdminController if (!empty($pre_client_id)) { - $client = $this->clientModel->where('id', $pre_client_id)->first(); + $client = $this->clientModel->where('md5(id)', $pre_client_id)->first(); if ($client) { $client['client_logo'] = base_url() . 'public/uploads/logo/' . $client['client_logo']; $clientPolicy = $this->clientPolicyModel - ->where('client_id', $pre_client_id) + ->where('md5(client_id)', $pre_client_id) ->where('client_branch_id', $pre_branch_id) ->findAll(); @@ -2240,12 +2269,18 @@ class EmployeeRestController extends AdminController try { $emp_code = $this->request->getGet('emp_code'); + $client_id = $this->request->getGet('client_id'); + $client_branch_id = $this->request->getGet('client_branch_id'); + $addOnEmployeeData = $this->employeeModel->where('is_active', 1 ) ->where('emp_code',$this->request->getGet('emp_code')) ->where('client_id',$this->request->getGet('client_id')) ->where('client_branch_id',$this->request->getGet('client_branch_id')) ->where('is_addon_value',1)->findAll(); + + $policyIds = $this->getEmployeeAddOnPolicies($emp_code, $client_id, $client_branch_id); + // dd($policyIds); $clientPolicy = $this->clientPolicyModel->select(" @@ -2276,7 +2311,11 @@ class EmployeeRestController extends AdminController ->where('policy_status', 1) ->where('is_active', 1) ->where('enrolment_visibility', 1) + ->whereIn('id', $policyIds) ->findAll(); + if(empty($policyIds)){ + return $this->respond(['status' => 'failed','code' => 404,'data' => []], 200); + } if(count($clientPolicy)) { @@ -2320,6 +2359,13 @@ class EmployeeRestController extends AdminController } + if(isset($array['base_policy']) && !empty($array['base_policy'])) + { + $openForEnrollmentValue = (int) $this->findThePolicyIsOpenForEnrollment($array['base_policy'], $emp_code); + }else{ + $openForEnrollmentValue = $array['open_for_enrollment']; + } + $policyTypeData = $this->policyTypeModel->where('id',$array['policy_type_id'])->get()->getRow(); $responce['policy_name'] = $policyTypeData->long_name; @@ -2329,7 +2375,7 @@ class EmployeeRestController extends AdminController $responce['client_id'] = $array['client_id']; $responce['client_policy_id'] = $array['id']; $responce['is_addon'] = $array['is_addon']; - $responce['OpenForEnrollment'] = $array['open_for_enrollment']; + $responce['OpenForEnrollment'] = $openForEnrollmentValue; $responce['policy_terms'] = $decodedArray; $responce['policy_type_id'] = $array['policy_type_id']; //$responce['is_member_modify_allowed'] = $array['is_member_modify_allowed']; @@ -2540,8 +2586,8 @@ class EmployeeRestController extends AdminController if($this->request->getGet('policy') == 'GMC-DEPENDENT-ADDON'){ - // return $this->respond(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], 200); - echo json_encode(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); + return $this->respond(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], 200); + // echo json_encode(['status' => 'success','code' => 200,'data' => ['gmc_dependent_addon'=>$responce]], JSON_PRETTY_PRINT | JSON_PRESERVE_ZERO_FRACTION); } //array_push($PolicyData, $responce); @@ -2708,8 +2754,18 @@ class EmployeeRestController extends AdminController $array_list = []; foreach ($client_policy_id as $key => $value) { - // $policy = $this->clientPolicyModel->where('id',$value)->where('open_for_enrollment',1)->find(); - $policy = $this->findThePolicyIsOpenForEnrollment($client_policy_id, $emp_code); + + $clientPolicyData = $this->clientPolicyModel->where('client_id',$client_id) + ->where('id',$value) + ->where('is_active', 1) + ->first(); + + if(in_array($clientPolicyData['policy_type_id'], [3,4,5])){ + $policy = $this->findThePolicyIsOpenForEnrollment($clientPolicyData['base_policy'], $emp_code); + }else{ + $policy = $this->findThePolicyIsOpenForEnrollment($value, $emp_code); + } + if($policy) { $this->myLogger->logme("error", 'client policy id = '.$value.' is open for enrollment'); @@ -2752,7 +2808,6 @@ class EmployeeRestController extends AdminController } }else { $this->myLogger->logme("error", 'client policy id = '.$value.' is not open for enrollment');} - } @@ -3048,7 +3103,7 @@ class EmployeeRestController extends AdminController $ClientPolicyData = $this->clientPolicyModel->select('client_policy.id as client_policy_id , client_policy.client_id as client_id, client_policy.policy_type_id as policy_type_id, client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type, client_policy.policy_no as policy_no, client_policy.insurer_id as insurer_id, DATE_FORMAT(client_policy.policy_end_date, "%d-%m-%Y") AS policy_expiry_date ') - ->where('client_policy.client_id', $this->request->getGet('client_id') ) + ->where('md5(client_policy.client_id)', $this->request->getGet('client_id') ) ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') ) ->where('client_policy.is_active', 1 ) ->where('client_policy.policy_status', 1) @@ -4357,4 +4412,100 @@ class EmployeeRestController extends AdminController } } + public function getEnrollmentDates($client_policy_id, $emp_code) + { + $enrollment_open_date = null; + $enrollment_close_date = null; + + $clientPolicyData = $this->clientPolicyModel->where('id', $client_policy_id) + ->where('is_active', 1) + ->first(); + + if(in_array($clientPolicyData['policy_type_id'] ?? null, [3,4,5])){ + + $policy = $this->employeePolicyModel + ->select('employee_polices.enrollment_open_date, employee_polices.enrollment_close_date') + ->join('employees', 'employee_polices.employee_id = employees.id') + ->where('employees.emp_code',$emp_code) + ->where('employee_polices.client_policy_id', $clientPolicyData['base_policy']) + ->where('employee_polices.enrollment_open_date <= CURDATE()', null, false) + ->where('employee_polices.enrollment_close_date >= CURDATE()', null, false) + ->where('employee_polices.enrollment_open_date is not null') + ->where('employee_polices.enrollment_close_date is not null') + ->where('employees.is_active', 1) + ->where('employee_polices.is_active', 1) + ->whereIn('employee_polices.status', ['draft', 'enrolled']) + ->whereIn('employees.emp_status', ['draft', 'enrolled']) + ->first(); + + $enrollment_open_date = $policy['enrollment_open_date'] ?? null; + $enrollment_close_date = $policy['enrollment_close_date'] ?? null; + } + + return [ + 'enrollment_open_date' => $enrollment_open_date, + 'enrollment_close_date' => $enrollment_close_date, + ]; + } + + public function getEmployeeAddOnPolicies($emp_code, $client_id, $client_branch_id): array + { + $data = $this->employeeModel + ->select(" + client_policy.id AS gmc_client_policy_id, + + ( + SELECT id FROM client_policy + WHERE policy_type_id = 3 + AND base_policy = gmc_client_policy_id + LIMIT 1 + ) AS gmc_parent_policy_id, + + ( + SELECT id FROM client_policy + WHERE policy_type_id = 4 + AND base_policy = gmc_client_policy_id + LIMIT 1 + ) AS gmc_topup_policy_id + ") + ->join('employee_polices', 'employees.id = employee_polices.employee_id') + ->join('client_policy', 'employee_polices.client_policy_id = client_policy.id') + ->whereIn('employees.emp_status', ['draft', 'enrolled']) + ->whereIn('employee_polices.status', ['draft', 'enrolled']) + ->where([ + 'employees.is_active' => 1, + 'employee_polices.is_active' => 1, + 'client_policy.policy_type_id' => 2, + 'employees.family_floater_key' => 'self', + 'employees.emp_code' => $emp_code ?? null, + 'employees.client_id' => $client_id ?? null, + 'employees.client_branch_id' => $client_branch_id ?? null, + ]) + ->orderBy('employee_polices.id', 'desc') + ->first(); + + // dd($data); + // dd(db_connect()->getLastQuery()); + + if (!empty($data) && !empty($data['gmc_parent_policy_id'])) { + + $getParentTopUp = $this->clientPolicyModel + ->select('id AS gmc_parent_topup_policy_id') + ->where('is_active', 1) + ->where('policy_type_id', 5) // parent Top-Up + ->where('base_policy', $data['gmc_parent_policy_id']) + ->first(); + } + + if (empty($data)) { + return []; + } + + $policyIds[] = $data['gmc_topup_policy_id']; + $policyIds[] = $data['gmc_parent_policy_id']; + $policyIds[] = $getParentTopUp['gmc_parent_topup_policy_id'] ?? null; + + return $policyIds; + } + } \ No newline at end of file diff --git a/app/Controllers/LoginController.php b/app/Controllers/LoginController.php index aa5d9a8..73f7bb0 100755 --- a/app/Controllers/LoginController.php +++ b/app/Controllers/LoginController.php @@ -61,9 +61,7 @@ class LoginController extends BaseController set_session_data($session_data); // Bind session to device - set_session_data(['fingerprint' => hash('sha256', - ($this->request->getUserAgent()->getAgentString() . '|' . ($this->request->getIPAddress() - )))]); + set_session_data(['fingerprint' => generateFingerprint()]); log_message('error', 'Set The UserId : `'. $user->id .'` in Session'); log_message('error', 'User Login Sucessfully'); diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index af58a6d..89ec1de 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -797,6 +797,8 @@ class RestAuthenticationController extends AdminController $decoded = json_decode($HRAccessData['allowed_modules'], true); $getAllhrData[$key]['allowed_modules'] = $decoded; + $HRAccessData['pre_client_id'] = md5($HRAccessData['pre_client_id']); + $HRAccessData['post_client_id'] = md5($HRAccessData['post_client_id']); $token = JWTToken::encode($HRAccessData); $getAllhrData[$key]['token'] = $token; diff --git a/app/Filters/AuthMVC.php b/app/Filters/AuthMVC.php index e6c6948..285f586 100755 --- a/app/Filters/AuthMVC.php +++ b/app/Filters/AuthMVC.php @@ -22,9 +22,7 @@ class AuthMVC implements FilterInterface // } // Fingerprint validation - $fp = hash('sha256', - $request->getUserAgent()->getAgentString() . '|' . $request->getIPAddress() - ); + $fp = generateFingerprint(); if (session()->get('fingerprint') !== $fp) { return AuthLogout::logout(); diff --git a/app/Helpers/JWTToken.php b/app/Helpers/JWTToken.php index 62b7281..d110444 100755 --- a/app/Helpers/JWTToken.php +++ b/app/Helpers/JWTToken.php @@ -39,6 +39,7 @@ class JWTToken }else{ $models = new LevelContactModel(); + $id = $request_data['pre_hr_id']; $models->update($id, $data); } diff --git a/app/Helpers/session_helper.php b/app/Helpers/session_helper.php index eb9eb9a..ccbdd51 100755 --- a/app/Helpers/session_helper.php +++ b/app/Helpers/session_helper.php @@ -118,7 +118,8 @@ if (!function_exists('check_role')) { { // $ci =& get_instance(); $session = \Config\Services::session(); - return $session->get('role'); + return $role_id = isset(get_session_userdata()->role) ? get_session_userdata()->role : null; + } } diff --git a/app/Helpers/utility_helper.php b/app/Helpers/utility_helper.php index e1b8a9b..d1f858b 100755 --- a/app/Helpers/utility_helper.php +++ b/app/Helpers/utility_helper.php @@ -557,7 +557,7 @@ if (!function_exists('change_date_format')) { $date = DateTime::createFromFormat($source_format, $date_str); if (!$date) { // throw new Exception("Invalid date string for source format: $source_format"); - log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"); + // log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"); return null; } return $date->format($output_format); @@ -568,7 +568,7 @@ if (!function_exists('change_date_format')) { $date = DateTime::createFromFormat($source_format, $date_str); if (!$date) { // throw new Exception("Invalid date string for source format: $source_format"); - log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"); + // log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"); return null; } return $date->format('Y-m-d'); // MySQL default format @@ -585,15 +585,15 @@ if (!function_exists('change_date_format')) { // If no format matches, throw an exception $allowed_placeholders = implode(', ', $allowed_formats); // throw new Exception("Invalid date string format. Allowed formats: $allowed_placeholders"); - log_message( - 'error', - "❌ Date format error: Invalid date string. Allowed formats: {$allowed_placeholders} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}" - ); + // log_message( + // 'error', + // "❌ Date format error: Invalid date string. Allowed formats: {$allowed_placeholders} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}" + // ); return null; } } catch (Exception $e) { // return "Error: " . $e->getMessage(); - log_message('error', "❌ Date format error: {$e->getMessage()} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"); + // log_message('error', "❌ Date format error: {$e->getMessage()} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"); return null; } @@ -756,3 +756,34 @@ if (!function_exists('validateExcelFile')) { return true; } } +function getRealClientIP() +{ + $request = service('request'); + + if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) { + return $_SERVER['HTTP_CF_CONNECTING_IP']; + } + + if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { + return explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0]; + } + + return $request->getIPAddress(); +} + +function generateFingerprint() +{ + $request = service('request'); + + $ua = $request->getUserAgent()->getAgentString(); + $ip = getRealClientIP(); + // echo $ip;die(); + // Use only subnet (first 3 blocks) to tolerate IP change + $ipParts = explode('.', $ip); + $ipSubnet = $ipParts[0] . '.' . $ipParts[1] . '.' . $ipParts[2]; + + // $secret = env('app.sessionFingerprintSalt'); + + // return hash('sha256', $ua . '|' . $ipSubnet . '|' . $secret); + return hash('sha256', $ua . '|' . $ipSubnet ); +} \ No newline at end of file diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 306e6ee..72b8ba9 100755 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -163,8 +163,10 @@ class EmployeePolicyModel extends Model ->orderBy('employee_polices.employee_id', 'ASC'); - // Conditionally add where clauses - if ($client_id != 0 && !empty($client_id)) { + // Conditionally add where clauses + if (is_string($client_id) && preg_match('/^[a-f0-9]{32}$/i', $client_id)) { + $result->where('MD5(emp.client_id)', $client_id); + } else if ($client_id != 0 && !empty($client_id)) { $result->where('emp.client_id', $client_id); } if ($branch_id != 0 && !empty($branch_id)) { diff --git a/app/Views/file_list.php b/app/Views/file_list.php index 0810319..9886ae9 100755 --- a/app/Views/file_list.php +++ b/app/Views/file_list.php @@ -113,7 +113,16 @@ class="mdi mdi-dots-horizontal"> + + + + + + + + + + + + + + + + + +
+
+ +
+ + Notification +
+
+
    + +
+
+ + +
+ + TO DOs +
+
+
    + +
+
+
+
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index 586695f..e021d8a 100755 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -50,17 +50,17 @@ /assets/css/jodit.css" rel="stylesheet" type="text/css" /> - - + + - - + + - - + + - - + + @@ -77,7 +77,7 @@ --> - + diff --git a/app/Views/layout/header_old_outdated.php b/app/Views/layout/header_old_outdated.php new file mode 100644 index 0000000..586695f --- /dev/null +++ b/app/Views/layout/header_old_outdated.php @@ -0,0 +1,759 @@ + + + + + + + <?= isset($page_name) ? $page_name : 'NHance'; ?> + + + + + + + + /assets/images/Nhance_Favi.svg"> + + + /assets/libs/admin-resources/jquery.vectormap/jquery-jvectormap-1.2.2.css" rel="stylesheet" type="text/css" /> + + + /assets/libs/datatables.net-bs4/css/dataTables.bootstrap4.min.css" rel="stylesheet" type="text/css" /> + /assets/libs/datatables.net-responsive-bs4/css/responsive.bootstrap4.min.css" rel="stylesheet" type="text/css" /> + /assets/libs/datatables.net-buttons-bs4/css/buttons.bootstrap4.min.css" rel="stylesheet" type="text/css" /> + /assets/libs/datatables.net-select-bs4/css//select.bootstrap4.min.css" rel="stylesheet" type="text/css" /> + + + + /assets/css/bootstrap-creative.min.css" rel="stylesheet" type="text/css" id="bs-default-stylesheet" /> + /assets/css/app-creative.min.css" rel="stylesheet" type="text/css" id="app-default-stylesheet" /> + + /assets/css/bootstrap-creative-dark.min.css" rel="stylesheet" type="text/css" id="bs-dark-stylesheet" /> + /assets/css/app-creative-dark.min.css" rel="stylesheet" type="text/css" id="app-dark-stylesheet" /> + + + /assets/css/icons.min.css" rel="stylesheet" type="text/css" /> + + /assets/libs/bootstrap-datepicker/css/bootstrap-datepicker.min.css" rel="stylesheet" type="text/css" /> + /assets/libs/bootstrap-daterangepicker/daterangepicker.css" rel="stylesheet" type="text/css"> + /assets/libs/bootstrap-daterangepicker/daterangepicker.css" rel="stylesheet" type="text/css"> + + + + + + + + + + + /assets/css/jodit.css" rel="stylesheet" type="text/css" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ /assets/images/nhance-loader-fast.gif" height="40" width="40" alt="Loading..."> +
+
+ + + +
+ + + + + + + + + + + + + +
+
+ + +
\ No newline at end of file diff --git a/public/assets/.htaccess b/public/assets/.htaccess new file mode 100644 index 0000000..13e218d --- /dev/null +++ b/public/assets/.htaccess @@ -0,0 +1,25 @@ +# =============================== +# ABSOLUTE SCRIPT EXECUTION BLOCK +# =============================== + +# Disable CGI +Options -ExecCGI + +# Disable PHP for mod_php / LiteSpeed + + php_flag engine off + + + + php_flag engine off + + +# Block any script file access + + Require all denied + + +# Block double extensions + + Require all denied + diff --git a/public/e_card_imgs/.htaccess b/public/e_card_imgs/.htaccess new file mode 100644 index 0000000..13e218d --- /dev/null +++ b/public/e_card_imgs/.htaccess @@ -0,0 +1,25 @@ +# =============================== +# ABSOLUTE SCRIPT EXECUTION BLOCK +# =============================== + +# Disable CGI +Options -ExecCGI + +# Disable PHP for mod_php / LiteSpeed + + php_flag engine off + + + + php_flag engine off + + +# Block any script file access + + Require all denied + + +# Block double extensions + + Require all denied + diff --git a/public/sample_excel/.htaccess b/public/sample_excel/.htaccess new file mode 100644 index 0000000..13e218d --- /dev/null +++ b/public/sample_excel/.htaccess @@ -0,0 +1,25 @@ +# =============================== +# ABSOLUTE SCRIPT EXECUTION BLOCK +# =============================== + +# Disable CGI +Options -ExecCGI + +# Disable PHP for mod_php / LiteSpeed + + php_flag engine off + + + + php_flag engine off + + +# Block any script file access + + Require all denied + + +# Block double extensions + + Require all denied + diff --git a/public/sample_import_excel/.htaccess b/public/sample_import_excel/.htaccess new file mode 100644 index 0000000..13e218d --- /dev/null +++ b/public/sample_import_excel/.htaccess @@ -0,0 +1,25 @@ +# =============================== +# ABSOLUTE SCRIPT EXECUTION BLOCK +# =============================== + +# Disable CGI +Options -ExecCGI + +# Disable PHP for mod_php / LiteSpeed + + php_flag engine off + + + + php_flag engine off + + +# Block any script file access + + Require all denied + + +# Block double extensions + + Require all denied + diff --git a/public/writable/.htaccess b/public/writable/.htaccess new file mode 100644 index 0000000..13e218d --- /dev/null +++ b/public/writable/.htaccess @@ -0,0 +1,25 @@ +# =============================== +# ABSOLUTE SCRIPT EXECUTION BLOCK +# =============================== + +# Disable CGI +Options -ExecCGI + +# Disable PHP for mod_php / LiteSpeed + + php_flag engine off + + + + php_flag engine off + + +# Block any script file access + + Require all denied + + +# Block double extensions + + Require all denied +