From 41d535b805daf98eeef55a90be99bf6b9c6f5e84 Mon Sep 17 00:00:00 2001
From: Andreas <6977712+AndreasK79@users.noreply.github.com>
Date: Tue, 1 Aug 2023 13:25:36 +0200
Subject: [PATCH] Secure calltester so that it can only run when logged in and
you are admin
---
application/controllers/Calltester.php | 254 ++++++++++++++-----------
1 file changed, 143 insertions(+), 111 deletions(-)
diff --git a/application/controllers/Calltester.php b/application/controllers/Calltester.php
index b8c99114..10cf96d0 100644
--- a/application/controllers/Calltester.php
+++ b/application/controllers/Calltester.php
@@ -1,12 +1,23 @@
-load->model('user_model');
+ if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
+ }
+
+
public function db() {
set_time_limit(3600);
// Starting clock time in seconds
$start_time = microtime(true);
-
+
$this->load->model('logbook_model');
$sql = 'select distinct col_country, col_call, col_dxcc, date(col_time_on) date from ' . $this->config->item('table_name');
@@ -15,7 +26,7 @@ class Calltester extends CI_Controller {
$callarray = $query->result();
$result = array();
-
+
$i = 0;
foreach ($callarray as $call) {
@@ -24,24 +35,24 @@ class Calltester extends CI_Controller {
$dxcc['adif'] = (isset($dxcc['adif'])) ? $dxcc['adif'] : 0;
$dxcc['entity'] = (isset($dxcc['entity'])) ? $dxcc['entity'] : 0;
-
+
if ($call->col_dxcc != $dxcc['adif']) {
$result[] = array(
- 'Callsign' => $call->col_call,
- 'Expected country' => $call->col_country,
- 'Expected adif' => $call->col_dxcc,
+ 'Callsign' => $call->col_call,
+ 'Expected country' => $call->col_country,
+ 'Expected adif' => $call->col_dxcc,
'Result country' => ucwords(strtolower($dxcc['entity']), "- (/"),
'Result adif' => $dxcc['adif'],
);
}
}
-
+
// End clock time in seconds
$end_time = microtime(true);
// Calculate script execution time
$execution_time = ($end_time - $start_time);
-
+
echo " Execution time of script = ".$execution_time." sec
";
echo $i . " calls tested.
";
$count = 0;
@@ -49,11 +60,11 @@ class Calltester extends CI_Controller {
if ($result) {
$this->array_to_table($result);
}
-
+
}
-
- function array_to_table($table) {
+
+ function array_to_table($table) {
echo ' ';
echo '
';
-
+
// Table header
foreach ($table[0] as $key=>$value) {
echo "| ".$key." | ";
}
-
+
// Table body
foreach ($table as $value) {
echo "";
foreach ($value as $val) {
echo "| ".$val." | ";
- }
+ }
echo "
";
- }
+ }
echo "
";
}
@@ -102,17 +113,17 @@ class Calltester extends CI_Controller {
// Starting clock time in seconds
$start_time = microtime(true);
-
+
$this->load->model('logbook_model');
$file = 'uploads/calls.csv';
$handle = fopen($file,"r");
-
+
$data = fgetcsv($handle,1000,","); // Skips firsts line, usually that is the header
$data = fgetcsv($handle,1000,",");
-
+
$result = array();
-
+
$i = 0;
do {
@@ -126,12 +137,12 @@ class Calltester extends CI_Controller {
$dxcc['entity'] = (isset($dxcc['entity'])) ? $dxcc['entity'] : 0;
$data[1] = $data[1] == "NULL" ? 0 : $data[1];
-
+
if ($data[1] != $dxcc['adif']) {
$result[] = array(
- 'Callsign' => $data[0],
- 'Expected country' => '',
- 'Expected adif' => $data[1],
+ 'Callsign' => $data[0],
+ 'Expected country' => '',
+ 'Expected adif' => $data[1],
'Result country' => ucwords(strtolower($dxcc['entity']), "- (/"),
'Result adif' => $dxcc['adif'],
);
@@ -144,7 +155,7 @@ class Calltester extends CI_Controller {
// Calculate script execution time
$execution_time = ($end_time - $start_time);
-
+
echo " Execution time of script = ".$execution_time." sec
";
echo $i . " calls tested.
";
$count = 0;
@@ -162,17 +173,17 @@ class Calltester extends CI_Controller {
// Starting clock time in seconds
$start_time = microtime(true);
-
+
$this->load->model('logbook_model');
$file = 'uploads/calls.csv';
$handle = fopen($file,"r");
-
+
$data = fgetcsv($handle,1000,","); // Skips firsts line, usually that is the header
$data = fgetcsv($handle,1000,",");
-
+
$result = array();
-
+
$i = 0;
do {
@@ -183,12 +194,12 @@ class Calltester extends CI_Controller {
$dxcc = $this->logbook_model->check_dxcc_table($data[0], $data[2]);
$data[1] = $data[1] == "NULL" ? 0 : $data[1];
-
+
if ($data[1] != $dxcc[0]) {
$result[] = array(
- 'Callsign' => $data[0],
- 'Expected country' => '',
- 'Expected adif' => $data[1],
+ 'Callsign' => $data[0],
+ 'Expected country' => '',
+ 'Expected adif' => $data[1],
'Result country' => ucwords(strtolower($dxcc[1]), "- (/"),
'Result adif' => $dxcc[0],
);
@@ -201,7 +212,7 @@ class Calltester extends CI_Controller {
// Calculate script execution time
$execution_time = ($end_time - $start_time);
-
+
echo " Execution time of script = ".$execution_time." sec
";
echo $i . " calls tested.
";
$count = 0;
@@ -216,232 +227,253 @@ class Calltester extends CI_Controller {
$testarray[] = array(
'Callsign' => 'VE3EY/VP9',
- 'Country' => 'Bermuda',
- 'Adif' => 64,
+ 'Country' => 'Bermuda',
+ 'Adif' => 64,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'VP2MDG',
- 'Country' => 'Montserrat',
- 'Adif' => 96,
+ 'Country' => 'Montserrat',
+ 'Adif' => 96,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'VP2EY',
- 'Country' => 'Anguilla',
- 'Adif' => 12,
+ 'Country' => 'Anguilla',
+ 'Adif' => 12,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'VP2VI',
- 'Country' => 'British Virgin Islands.',
- 'Adif' => 65,
+ 'Country' => 'British Virgin Islands.',
+ 'Adif' => 65,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'VP2V/AA7V',
- 'Country' => 'British Virgin Islands',
- 'Adif' => 65,
+ 'Country' => 'British Virgin Islands',
+ 'Adif' => 65,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'W8LR/R',
- 'Country' => 'United States Of America',
- 'Adif' => 291,
+ 'Country' => 'United States Of America',
+ 'Adif' => 291,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'SO1FH',
- 'Country' => 'Poland',
- 'Adif' => 269,
+ 'Country' => 'Poland',
+ 'Adif' => 269,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'KZ1H/PP',
- 'Country' => 'Brazil',
- 'Adif' => 108,
+ 'Country' => 'Brazil',
+ 'Adif' => 108,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'K1KW/AM',
- 'Country' => 'None',
- 'Adif' => 0,
+ 'Country' => 'None',
+ 'Adif' => 0,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'K1KW/MM',
- 'Country' => 'None',
- 'Adif' => 0,
+ 'Country' => 'None',
+ 'Adif' => 0,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'TF/DL2NWK/P',
- 'Country' => 'Iceland',
- 'Adif' => 242,
+ 'Country' => 'Iceland',
+ 'Adif' => 242,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'OZ1ALS/A',
- 'Country' => 'Denmark',
- 'Adif' => 221,
+ 'Country' => 'Denmark',
+ 'Adif' => 221,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'LA1K',
- 'Country' => 'Norway',
- 'Adif' => 266,
+ 'Country' => 'Norway',
+ 'Adif' => 266,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'K1KW/M',
- 'Country' => 'United States Of America',
- 'Adif' => 291,
+ 'Country' => 'United States Of America',
+ 'Adif' => 291,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'TF/DL2NWK/M',
- 'Country' => 'Iceland',
- 'Adif' => 242,
+ 'Country' => 'Iceland',
+ 'Adif' => 242,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'TF/DL2NWK/MM',
- 'Country' => 'None',
- 'Adif' => 0,
+ 'Country' => 'None',
+ 'Adif' => 0,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'TF/DL2NWK/P',
- 'Country' => 'Iceland',
- 'Adif' => 242,
+ 'Country' => 'Iceland',
+ 'Adif' => 242,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => '2M0SQL/P',
- 'Country' => 'Scotland',
- 'Adif' => 279,
+ 'Country' => 'Scotland',
+ 'Adif' => 279,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'FT8WW',
- 'Country' => 'Crozet Island',
- 'Adif' => 41,
- 'Date' => $date = date('Ymd', time())
+ 'Country' => 'Crozet Island',
+ 'Adif' => 41,
+ 'Date' => 20230314
);
$testarray[] = array(
'Callsign' => 'RV0AL/0/P',
- 'Country' => 'Asiatic Russia',
- 'Adif' => 15,
+ 'Country' => 'Asiatic Russia',
+ 'Adif' => 15,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'OH/DJ1YFK',
- 'Country' => 'Finland',
- 'Adif' => 224,
+ 'Country' => 'Finland',
+ 'Adif' => 224,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'N6TR/7',
- 'Country' => 'United States Of America',
- 'Adif' => 291,
+ 'Country' => 'United States Of America',
+ 'Adif' => 291,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'KH0CW',
- 'Country' => 'United States Of America',
- 'Adif' => 291,
+ 'Country' => 'United States Of America',
+ 'Adif' => 291,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'R2FM/P',
- 'Country' => 'kaliningrad',
- 'Adif' => 126,
+ 'Country' => 'kaliningrad',
+ 'Adif' => 126,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'R2FM',
- 'Country' => 'kaliningrad',
- 'Adif' => 126,
+ 'Country' => 'kaliningrad',
+ 'Adif' => 126,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'FT5XO',
- 'Country' => 'Kerguelen Island',
- 'Adif' => 131,
+ 'Country' => 'Kerguelen Island',
+ 'Adif' => 131,
'Date' => 20050320
);
$testarray[] = array(
'Callsign' => 'VP8CTR',
- 'Country' => 'Antarctica',
- 'Adif' => 13,
+ 'Country' => 'Antarctica',
+ 'Adif' => 13,
'Date' => 19970207
);
$testarray[] = array(
'Callsign' => 'FO0AAA',
- 'Country' => 'Clipperton',
- 'Adif' => 36,
+ 'Country' => 'Clipperton',
+ 'Adif' => 36,
'Date' => '20000302'
);
-
+
$testarray[] = array(
'Callsign' => 'CX/PR8KW',
- 'Country' => 'Uruguay',
- 'Adif' => 144,
+ 'Country' => 'Uruguay',
+ 'Adif' => 144,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'IQ3MV/LH',
- 'Country' => 'Italy',
- 'Adif' => 248,
+ 'Country' => 'Italy',
+ 'Adif' => 248,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'LA1K/QRP',
- 'Country' => 'Norway',
- 'Adif' => 266,
+ 'Country' => 'Norway',
+ 'Adif' => 266,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'LA1K/LGT',
- 'Country' => 'Norway',
- 'Adif' => 266,
+ 'Country' => 'Norway',
+ 'Adif' => 266,
'Date' => $date = date('Ymd', time())
);
$testarray[] = array(
'Callsign' => 'SM1K/LH',
- 'Country' => 'Sweden',
- 'Adif' => 284,
+ 'Country' => 'Sweden',
+ 'Adif' => 284,
+ 'Date' => $date = date('Ymd', time())
+ );
+
+ $testarray[] = array(
+ 'Callsign' => 'KG4W',
+ 'Country' => 'United States Of America',
+ 'Adif' => 291,
+ 'Date' => $date = date('Ymd', time())
+ );
+
+ $testarray[] = array(
+ 'Callsign' => 'KG4WW',
+ 'Country' => 'Guantanamo Bay',
+ 'Adif' => 105,
+ 'Date' => $date = date('Ymd', time())
+ );
+
+ $testarray[] = array(
+ 'Callsign' => 'KG4WWW',
+ 'Country' => 'United States Of America',
+ 'Adif' => 291,
'Date' => $date = date('Ymd', time())
);
@@ -449,11 +481,11 @@ class Calltester extends CI_Controller {
// Starting clock time in seconds
$start_time = microtime(true);
-
+
$this->load->model('logbook_model');
$result = array();
-
+
$i = 0;
foreach ($testarray as $call) {
@@ -462,24 +494,24 @@ class Calltester extends CI_Controller {
$dxcc['adif'] = (isset($dxcc['adif'])) ? $dxcc['adif'] : 0;
$dxcc['entity'] = (isset($dxcc['entity'])) ? $dxcc['entity'] : 0;
-
+
if ($call['Adif'] != $dxcc['adif']) {
$result[] = array(
- 'Callsign' => $call['Callsign'],
- 'Expected country' => $call['Country'],
- 'Expected adif' => $call['Adif'],
+ 'Callsign' => $call['Callsign'],
+ 'Expected country' => $call['Country'],
+ 'Expected adif' => $call['Adif'],
'Result country' => ucwords(strtolower($dxcc['entity']), "- (/"),
'Result adif' => $dxcc['adif'],
);
}
}
-
+
// End clock time in seconds
$end_time = microtime(true);
// Calculate script execution time
$execution_time = ($end_time - $start_time);
-
+
echo " Execution time of script = ".$execution_time." sec
";
echo $i . " calls tested.
";
$count = 0;
@@ -488,4 +520,4 @@ class Calltester extends CI_Controller {
$this->array_to_table($result);
}
}
-}
\ No newline at end of file
+}