Skip to content

Commit 53aa59c

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents 0de067c + 3792681 commit 53aa59c

File tree

31 files changed

+256
-185
lines changed

31 files changed

+256
-185
lines changed

application/controllers/Api.php

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,23 @@ function auth($key = '') {
119119

120120
function create_station($key = '') {
121121
$this->load->model('api_model');
122+
122123
if ($this->api_model->access($key) == "No Key Found" || $this->api_model->access($key) == "Key Disabled") {
123124
$this->output->set_status_header(401)->set_content_type('application/json')->set_output(json_encode(['status' => 'error', 'message' => 'Auth Error, invalid key']));
124125
return;
125126
}
127+
128+
$this->load->model('club_model');
129+
$userid = $this->api_model->key_userid($key);
130+
$created_by = $this->api_model->key_created_by($key);
131+
$club_perm = $this->club_model->get_permission_noui($userid,$created_by);
132+
if ($userid != $created_by) { // We're dealing with a Club Member/Member ADIF or Clubofficer
133+
if ((($club_perm ?? 0) == 3) || (($club_perm ?? 0) == 6)) { // Member or ADIF-Member? DENY
134+
$this->output->set_status_header(401)->set_content_type('application/json')->set_output(json_encode(['status' => 'error', 'message' => 'Auth Error, not enough grants for this operation']));
135+
return;
136+
}
137+
}
138+
126139
try {
127140
$raw = file_get_contents("php://input");
128141
if ($raw === false) {
@@ -149,8 +162,7 @@ function create_station($key = '') {
149162
$this->output->set_status_header(500)->set_content_type('application/json')->set_output(json_encode(['status' => 'error', 'message' => 'Processing error: ' . $e->getMessage()]));
150163
}
151164
$this->load->model('stationsetup_model');
152-
$user_id = $this->api_model->key_userid($key);
153-
$imported = $this->stationsetup_model->import_locations_parse($locations,$user_id);
165+
$imported = $this->stationsetup_model->import_locations_parse($locations,$userid);
154166
if (($imported[0] ?? '0') == 'limit') {
155167
$this->output->set_status_header(201)->set_content_type('application/json')->set_output(json_encode(['status' => 'success', 'message' => ($imported[1] ?? '0')." locations imported. Maximum limit of 1000 locations reached."]));
156168
} else {
@@ -224,6 +236,7 @@ function qso($dryrun = false) {
224236
$this->load->model('api_model');
225237

226238
$this->load->model('stations');
239+
$this->load->model('club_model');
227240

228241
if (!$this->load->is_loaded('Qra')) {
229242
$this->load->library('Qra');
@@ -252,6 +265,7 @@ function qso($dryrun = false) {
252265

253266
$userid = $this->api_model->key_userid($obj['key']);
254267
$created_by = $this->api_model->key_created_by($obj['key']);
268+
$club_perm = $this->club_model->get_permission_noui($userid,$created_by);
255269

256270
/**
257271
* As the API key user could use it also for clubstations we need to do an additional check here. Only if clubstations are enabled
@@ -260,12 +274,11 @@ function qso($dryrun = false) {
260274
* If the user is not the creator of the API key, it's likely a clubstation. In this case the callsign of the clubstation
261275
* can not be the same as the callsign of the user (operator call provided by the user). If this is the case, we need to use the callsign of the creator of the API key
262276
*/
263-
$real_operator = null;
277+
$real_operator = null; // real_operator is only filled if its a clubstation and the used key is created by an OP. otherwise its null
264278
if ($this->config->item('special_callsign')) {
265279
if ($userid != $created_by) {
266280
$this->load->model('user_model');
267281
$real_operator = $this->user_model->get_by_id($created_by)->row()->user_callsign;
268-
// TODO: It would be possible to check here if operator is allowed to use the clubstation, but this can be added later if needed
269282
} else {
270283
$real_operator = null;
271284
}
@@ -327,6 +340,11 @@ function qso($dryrun = false) {
327340
$record['operator'] = $real_operator;
328341
}
329342

343+
// in case the caller is an OP for a clubstation (real_operator is filled - see above) and the OP only has level 3 or 6 - take the OP from real_operator!
344+
if ($real_operator != null && ((($club_perm ?? 0) == 3) || (($club_perm ?? 0) == 6))) {
345+
$record['operator'] = $real_operator;
346+
}
347+
330348
if ((key_exists('gridsquare',$record)) && (($mygrid ?? '') != '') && (($record['gridsquare'] ?? '') != '') && (!(key_exists('distance',$record)))) {
331349
$record['distance'] = $this->qra->distance($mygrid, $record['gridsquare'], 'K');
332350
}

application/locale/bg_BG/LC_MESSAGES/messages.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
msgid ""
77
msgstr ""
88
"Report-Msgid-Bugs-To: translations@wavelog.org\n"
9-
"POT-Creation-Date: 2025-12-14 10:34+0000\n"
9+
"POT-Creation-Date: 2025-12-14 17:13+0000\n"
1010
"PO-Revision-Date: 2024-11-01 08:53+0000\n"
1111
"Last-Translator: Plamen Panteleev <lz1ppl@abv.bg>\n"
1212
"Language-Team: Bulgarian <https://translate.wavelog.org/projects/wavelog/"
@@ -682,8 +682,8 @@ msgstr ""
682682
msgid "Club Member"
683683
msgstr ""
684684

685-
#: application/controllers/Club.php:45 application/models/Club_model.php:75
686-
#: application/models/Club_model.php:149 application/models/Club_model.php:191
685+
#: application/controllers/Club.php:45 application/models/Club_model.php:107
686+
#: application/models/Club_model.php:181 application/models/Club_model.php:223
687687
msgid "Invalid User ID!"
688688
msgstr ""
689689

@@ -699,8 +699,8 @@ msgstr ""
699699

700700
#: application/controllers/Club.php:119 application/controllers/Club.php:148
701701
#: application/controllers/Club.php:175 application/models/Club_model.php:22
702-
#: application/models/Club_model.php:70 application/models/Club_model.php:144
703-
#: application/models/Club_model.php:186
702+
#: application/models/Club_model.php:102 application/models/Club_model.php:176
703+
#: application/models/Club_model.php:218
704704
msgid "Invalid Club ID!"
705705
msgstr ""
706706

@@ -3311,11 +3311,11 @@ msgctxt "Division Name (States in various countries)."
33113311
msgid "City / Ku / Gun"
33123312
msgstr ""
33133313

3314-
#: application/models/Club_model.php:154
3314+
#: application/models/Club_model.php:186
33153315
msgid "Invalid Permission Level!"
33163316
msgstr ""
33173317

3318-
#: application/models/Club_model.php:169
3318+
#: application/models/Club_model.php:201
33193319
msgid "Error adding Club Member!"
33203320
msgstr ""
33213321

application/locale/bs/LC_MESSAGES/messages.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
msgid ""
88
msgstr ""
99
"Report-Msgid-Bugs-To: translations@wavelog.org\n"
10-
"POT-Creation-Date: 2025-12-14 10:34+0000\n"
10+
"POT-Creation-Date: 2025-12-14 17:13+0000\n"
1111
"PO-Revision-Date: 2024-11-16 17:03+0000\n"
1212
"Last-Translator: Samir <DL4DCO@users.noreply.translate.wavelog.org>\n"
1313
"Language-Team: Bosnian <https://translate.wavelog.org/projects/wavelog/main-"
@@ -684,8 +684,8 @@ msgstr ""
684684
msgid "Club Member"
685685
msgstr ""
686686

687-
#: application/controllers/Club.php:45 application/models/Club_model.php:75
688-
#: application/models/Club_model.php:149 application/models/Club_model.php:191
687+
#: application/controllers/Club.php:45 application/models/Club_model.php:107
688+
#: application/models/Club_model.php:181 application/models/Club_model.php:223
689689
msgid "Invalid User ID!"
690690
msgstr ""
691691

@@ -701,8 +701,8 @@ msgstr ""
701701

702702
#: application/controllers/Club.php:119 application/controllers/Club.php:148
703703
#: application/controllers/Club.php:175 application/models/Club_model.php:22
704-
#: application/models/Club_model.php:70 application/models/Club_model.php:144
705-
#: application/models/Club_model.php:186
704+
#: application/models/Club_model.php:102 application/models/Club_model.php:176
705+
#: application/models/Club_model.php:218
706706
msgid "Invalid Club ID!"
707707
msgstr ""
708708

@@ -3317,11 +3317,11 @@ msgctxt "Division Name (States in various countries)."
33173317
msgid "City / Ku / Gun"
33183318
msgstr ""
33193319

3320-
#: application/models/Club_model.php:154
3320+
#: application/models/Club_model.php:186
33213321
msgid "Invalid Permission Level!"
33223322
msgstr ""
33233323

3324-
#: application/models/Club_model.php:169
3324+
#: application/models/Club_model.php:201
33253325
msgid "Error adding Club Member!"
33263326
msgstr ""
33273327

application/locale/cnr/LC_MESSAGES/messages.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
msgid ""
88
msgstr ""
99
"Report-Msgid-Bugs-To: translations@wavelog.org\n"
10-
"POT-Creation-Date: 2025-12-14 10:34+0000\n"
10+
"POT-Creation-Date: 2025-12-14 17:13+0000\n"
1111
"PO-Revision-Date: 2024-11-19 01:22+0000\n"
1212
"Last-Translator: Fabian Berg <fabian.berg@hb9hil.org>\n"
1313
"Language-Team: Montenegrin <https://translate.wavelog.org/projects/wavelog/"
@@ -684,8 +684,8 @@ msgstr ""
684684
msgid "Club Member"
685685
msgstr ""
686686

687-
#: application/controllers/Club.php:45 application/models/Club_model.php:75
688-
#: application/models/Club_model.php:149 application/models/Club_model.php:191
687+
#: application/controllers/Club.php:45 application/models/Club_model.php:107
688+
#: application/models/Club_model.php:181 application/models/Club_model.php:223
689689
msgid "Invalid User ID!"
690690
msgstr ""
691691

@@ -701,8 +701,8 @@ msgstr ""
701701

702702
#: application/controllers/Club.php:119 application/controllers/Club.php:148
703703
#: application/controllers/Club.php:175 application/models/Club_model.php:22
704-
#: application/models/Club_model.php:70 application/models/Club_model.php:144
705-
#: application/models/Club_model.php:186
704+
#: application/models/Club_model.php:102 application/models/Club_model.php:176
705+
#: application/models/Club_model.php:218
706706
msgid "Invalid Club ID!"
707707
msgstr ""
708708

@@ -3317,11 +3317,11 @@ msgctxt "Division Name (States in various countries)."
33173317
msgid "City / Ku / Gun"
33183318
msgstr ""
33193319

3320-
#: application/models/Club_model.php:154
3320+
#: application/models/Club_model.php:186
33213321
msgid "Invalid Permission Level!"
33223322
msgstr ""
33233323

3324-
#: application/models/Club_model.php:169
3324+
#: application/models/Club_model.php:201
33253325
msgid "Error adding Club Member!"
33263326
msgstr ""
33273327

application/locale/cs_CZ/LC_MESSAGES/messages.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
msgid ""
1010
msgstr ""
1111
"Report-Msgid-Bugs-To: translations@wavelog.org\n"
12-
"POT-Creation-Date: 2025-12-14 10:34+0000\n"
12+
"POT-Creation-Date: 2025-12-14 17:13+0000\n"
1313
"PO-Revision-Date: 2024-09-23 14:46+0000\n"
1414
"Last-Translator: Filip Melik <filip@melik.cz>\n"
1515
"Language-Team: Czech <https://translate.wavelog.org/projects/wavelog/main-"
@@ -685,8 +685,8 @@ msgstr ""
685685
msgid "Club Member"
686686
msgstr ""
687687

688-
#: application/controllers/Club.php:45 application/models/Club_model.php:75
689-
#: application/models/Club_model.php:149 application/models/Club_model.php:191
688+
#: application/controllers/Club.php:45 application/models/Club_model.php:107
689+
#: application/models/Club_model.php:181 application/models/Club_model.php:223
690690
msgid "Invalid User ID!"
691691
msgstr ""
692692

@@ -702,8 +702,8 @@ msgstr ""
702702

703703
#: application/controllers/Club.php:119 application/controllers/Club.php:148
704704
#: application/controllers/Club.php:175 application/models/Club_model.php:22
705-
#: application/models/Club_model.php:70 application/models/Club_model.php:144
706-
#: application/models/Club_model.php:186
705+
#: application/models/Club_model.php:102 application/models/Club_model.php:176
706+
#: application/models/Club_model.php:218
707707
msgid "Invalid Club ID!"
708708
msgstr ""
709709

@@ -3319,11 +3319,11 @@ msgctxt "Division Name (States in various countries)."
33193319
msgid "City / Ku / Gun"
33203320
msgstr ""
33213321

3322-
#: application/models/Club_model.php:154
3322+
#: application/models/Club_model.php:186
33233323
msgid "Invalid Permission Level!"
33243324
msgstr ""
33253325

3326-
#: application/models/Club_model.php:169
3326+
#: application/models/Club_model.php:201
33273327
msgid "Error adding Club Member!"
33283328
msgstr ""
33293329

application/locale/de_DE/LC_MESSAGES/messages.po

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,8 @@ msgstr "Club Mitglied"
720720

721721
#: application/controllers/Club.php:45 application/models/Club_model.php:75
722722
#: application/models/Club_model.php:149 application/models/Club_model.php:191
723+
#: application/models/Club_model.php:107 application/models/Club_model.php:181
724+
#: application/models/Club_model.php:223
723725
msgid "Invalid User ID!"
724726
msgstr "Ungültige Benutzer-ID!"
725727

@@ -736,7 +738,8 @@ msgstr "Club-Berechtigungen"
736738
#: application/controllers/Club.php:119 application/controllers/Club.php:148
737739
#: application/controllers/Club.php:175 application/models/Club_model.php:22
738740
#: application/models/Club_model.php:70 application/models/Club_model.php:144
739-
#: application/models/Club_model.php:186
741+
#: application/models/Club_model.php:186 application/models/Club_model.php:102
742+
#: application/models/Club_model.php:176 application/models/Club_model.php:218
740743
msgid "Invalid Club ID!"
741744
msgstr "Ungültige Club-ID!"
742745

@@ -3518,11 +3521,11 @@ msgctxt "Division Name (States in various countries)."
35183521
msgid "City / Ku / Gun"
35193522
msgstr "Stadt / Ku / Gun"
35203523

3521-
#: application/models/Club_model.php:154
3524+
#: application/models/Club_model.php:154 application/models/Club_model.php:186
35223525
msgid "Invalid Permission Level!"
35233526
msgstr "Ungültige Berechtigungsstufe!"
35243527

3525-
#: application/models/Club_model.php:169
3528+
#: application/models/Club_model.php:169 application/models/Club_model.php:201
35263529
msgid "Error adding Club Member!"
35273530
msgstr "Fehler beim Hinzufügen eines Clubmitglieds!"
35283531

application/locale/el_GR/LC_MESSAGES/messages.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
msgid ""
88
msgstr ""
99
"Report-Msgid-Bugs-To: translations@wavelog.org\n"
10-
"POT-Creation-Date: 2025-12-14 10:34+0000\n"
10+
"POT-Creation-Date: 2025-12-14 17:13+0000\n"
1111
"PO-Revision-Date: 2025-08-19 17:14+0000\n"
1212
"Last-Translator: Fabian Berg <fabian.berg@hb9hil.org>\n"
1313
"Language-Team: Greek <https://translate.wavelog.org/projects/wavelog/main-"
@@ -683,8 +683,8 @@ msgstr ""
683683
msgid "Club Member"
684684
msgstr ""
685685

686-
#: application/controllers/Club.php:45 application/models/Club_model.php:75
687-
#: application/models/Club_model.php:149 application/models/Club_model.php:191
686+
#: application/controllers/Club.php:45 application/models/Club_model.php:107
687+
#: application/models/Club_model.php:181 application/models/Club_model.php:223
688688
msgid "Invalid User ID!"
689689
msgstr ""
690690

@@ -700,8 +700,8 @@ msgstr ""
700700

701701
#: application/controllers/Club.php:119 application/controllers/Club.php:148
702702
#: application/controllers/Club.php:175 application/models/Club_model.php:22
703-
#: application/models/Club_model.php:70 application/models/Club_model.php:144
704-
#: application/models/Club_model.php:186
703+
#: application/models/Club_model.php:102 application/models/Club_model.php:176
704+
#: application/models/Club_model.php:218
705705
msgid "Invalid Club ID!"
706706
msgstr ""
707707

@@ -3314,11 +3314,11 @@ msgctxt "Division Name (States in various countries)."
33143314
msgid "City / Ku / Gun"
33153315
msgstr ""
33163316

3317-
#: application/models/Club_model.php:154
3317+
#: application/models/Club_model.php:186
33183318
msgid "Invalid Permission Level!"
33193319
msgstr ""
33203320

3321-
#: application/models/Club_model.php:169
3321+
#: application/models/Club_model.php:201
33223322
msgid "Error adding Club Member!"
33233323
msgstr ""
33243324

application/locale/es_ES/LC_MESSAGES/messages.po

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
msgid ""
1515
msgstr ""
1616
"Report-Msgid-Bugs-To: translations@wavelog.org\n"
17-
"POT-Creation-Date: 2025-12-14 10:34+0000\n"
17+
"POT-Creation-Date: 2025-12-14 17:13+0000\n"
1818
"PO-Revision-Date: 2025-10-22 00:19+0000\n"
1919
"Last-Translator: David Quental <ct1drb72@gmail.com>\n"
2020
"Language-Team: Spanish <https://translate.wavelog.org/projects/wavelog/main-"
@@ -692,8 +692,8 @@ msgstr ""
692692
msgid "Club Member"
693693
msgstr "Miembro del club"
694694

695-
#: application/controllers/Club.php:45 application/models/Club_model.php:75
696-
#: application/models/Club_model.php:149 application/models/Club_model.php:191
695+
#: application/controllers/Club.php:45 application/models/Club_model.php:107
696+
#: application/models/Club_model.php:181 application/models/Club_model.php:223
697697
msgid "Invalid User ID!"
698698
msgstr "¡ID de usuario no válido!"
699699

@@ -709,8 +709,8 @@ msgstr "Permisos del club"
709709

710710
#: application/controllers/Club.php:119 application/controllers/Club.php:148
711711
#: application/controllers/Club.php:175 application/models/Club_model.php:22
712-
#: application/models/Club_model.php:70 application/models/Club_model.php:144
713-
#: application/models/Club_model.php:186
712+
#: application/models/Club_model.php:102 application/models/Club_model.php:176
713+
#: application/models/Club_model.php:218
714714
msgid "Invalid Club ID!"
715715
msgstr "¡ID de club no válido!"
716716

@@ -3394,11 +3394,11 @@ msgctxt "Division Name (States in various countries)."
33943394
msgid "City / Ku / Gun"
33953395
msgstr "Ciudad / Distrito / Municipio"
33963396

3397-
#: application/models/Club_model.php:154
3397+
#: application/models/Club_model.php:186
33983398
msgid "Invalid Permission Level!"
33993399
msgstr "¡Nivel de permiso no válido!"
34003400

3401-
#: application/models/Club_model.php:169
3401+
#: application/models/Club_model.php:201
34023402
msgid "Error adding Club Member!"
34033403
msgstr "¡Error al agregar miembro del club!"
34043404

0 commit comments

Comments
 (0)