diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 43f157026..0b114b8c5 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -82,7 +82,8 @@ if (isset($_REQUEST['prestudent'])) $ps = new prestudent($_REQUEST['prestudent']); $login_ok = false; - if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && isset($_GET['confirmation'])) + if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL && + (isset($_GET['confirmation']) || isset($_GET['confirmed_code']))) { if (isset($_SESSION['bewerbung/personId']) && $ps->person_id == $_SESSION['bewerbung/personId']) { @@ -153,6 +154,33 @@ if (isset($_REQUEST['prestudent'])) { // regenerate Session ID after Login session_regenerate_id(); + if (defined('TESTTOOL_LOGIN_BEWERBUNGSTOOL') && TESTTOOL_LOGIN_BEWERBUNGSTOOL) + { + if ($rt->zugangs_ueberpruefung && !is_null($rt->zugangscode)) + { + $_SESSION['confirmed_code'] = false; + if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true) + { + if (isset($_GET['confirmed_code'])) + { + if ($_GET['confirmed_code'] === $_SESSION['reihungstest_code']) + { + $_SESSION['confirmed_code'] = true; + } + else + $alertmsg .= '
Code ist nicht korrekt.
'; + } + } + + if ($_SESSION['confirmed_code'] === false) + { + $_SESSION['reihungstest_code'] = $rt->zugangscode; + $_SESSION['confirmation_needed'] = true; + } + else + $reload_menu = true; + } + } $pruefling = new pruefling(); if ($pruefling->getPruefling($ps->prestudent_id)) @@ -314,8 +342,11 @@ else } } - -if (isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) +if ((isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']) && + !isset($_SESSION['confirmation_needed']) && !isset($_SESSION['confirmed_code'])) || + (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true && + isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === true && + isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id']))) { $pruefling = new pruefling(); @@ -421,8 +452,32 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id'])) +
+
'.$alertmsg.'
+
+ '.$p->t('testtool/freischalttext').' +
+
+ '.$p->t('testtool/freischaltcode').': +
+ + +
+
+ +
+
+ '; +} //REIHUNGSTEST STARTSEITE (nach Login) -if (isset($prestudent_id)) +elseif (isset($prestudent_id)) { $prestudent = new prestudent($prestudent_id); $stg_obj = new studiengang($prestudent->studiengang_kz); diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index 0140816ab..30d603afc 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -60,6 +60,9 @@ class reihungstest extends basis_db public $anmeldedatum; // date public $teilgenommen; // boolean public $punkte; // numeric + + public $zugangs_ueberpruefung = false; //boolean + public $zugangscode; //smallint /** @@ -114,6 +117,8 @@ class reihungstest extends basis_db $this->stufe = $row->stufe; $this->anmeldefrist = $row->anmeldefrist; $this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz; + $this->zugangs_ueberpruefung = $this->db_parse_bool($row->zugangs_ueberpruefung); + $this->zugangscode = $row->zugangscode; return true; } @@ -229,7 +234,7 @@ class reihungstest extends basis_db $qry = 'BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit, insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet, - studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz) VALUES('. + studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz, zugangs_ueberpruefung, zugangscode) VALUES('. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->ort_kurzbz).', '. $this->db_add_param($this->anmerkung).', '. @@ -243,7 +248,9 @@ class reihungstest extends basis_db $this->db_add_param($this->studiensemester_kurzbz).','. $this->db_add_param($this->stufe, FHC_INTEGER).','. $this->db_add_param($this->anmeldefrist).','. - $this->db_add_param($this->aufnahmegruppe_kurzbz).');'; + $this->db_add_param($this->aufnahmegruppe_kurzbz). ',' . + $this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).','. + $this->db_add_param($this->zugangscode) . ');'; } else { @@ -261,7 +268,9 @@ class reihungstest extends basis_db 'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '. 'stufe='.$this->db_add_param($this->stufe, FHC_INTEGER).', '. 'anmeldefrist='.$this->db_add_param($this->anmeldefrist).', '. - 'aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).' '. + 'aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).', '. + 'zugangs_ueberpruefung='.$this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).', '. + 'zugangscode='.$this->db_add_param($this->zugangscode).' '. 'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';'; } diff --git a/locale/de-AT/testtool.php b/locale/de-AT/testtool.php index 3e69306b3..e65892a75 100644 --- a/locale/de-AT/testtool.php +++ b/locale/de-AT/testtool.php @@ -78,5 +78,8 @@ $this->phrasen['testtool/einfuehrungsText']=' '; $this->phrasen['testtool/prueflingGesperrt']='Bitte kontaktieren Sie die Reihungstestaufsicht!'; +$this->phrasen['testtool/freischaltcode']='Freischaltcode'; +$this->phrasen['testtool/freischalttext']='Ihren Freischaltcode erhalten Sie am Tag des Reihungstests nach erfolgter Einführung im ZOOM-Meeting (siehe Leitfaden) von der Aufsicht.
Wir wünschen Ihnen viel Erfolg.'; + ?> diff --git a/locale/en-US/testtool.php b/locale/en-US/testtool.php index 473ac1e0d..5524d4304 100644 --- a/locale/en-US/testtool.php +++ b/locale/en-US/testtool.php @@ -51,4 +51,6 @@ $this->phrasen['testtool/keinPrueflingseintragVorhanden']='No candidate entry av $this->phrasen['testtool/fuerFolgendeStgAngemeldet']='You have applied for the following degree programs:'; $this->phrasen['testtool/invalideGebiete']='One or more question areas incorrect!
Please inform an assisting person.'; $this->phrasen['testtool/prueflingGesperrt']='Please contact the placement test supervisor!'; +$this->phrasen['testtool/freischaltcode']='Activation code'; +$this->phrasen['testtool/freischalttext']='You will receive your activation code on the day of the placement test after the introduction in the ZOOM meeting (see guideline) from the supervisor.
We wish you good luck.' ?> \ No newline at end of file diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index 9d89de0d1..57f037d14 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -29,6 +29,7 @@ require_once('dbupdate_3.4/example2.php'); */ require_once('dbupdate_3.4/26173_index_webservicelog.php'); +require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/system/dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php b/system/dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php new file mode 100644 index 000000000..e522df339 --- /dev/null +++ b/system/dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php @@ -0,0 +1,15 @@ +db_query("SELECT zugangs_ueberpruefung FROM public.tbl_reihungstest LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangs_ueberpruefung boolean NOT NULL DEFAULT false; + ALTER TABLE public.tbl_reihungstest ADD COLUMN zugangscode smallint DEFAULT NULL;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_reihungstest: '.$db->db_last_error().'
'; + else + echo '
public.tbl_reihungstest: Spalte zugangs_ueberpruefung und zugangscode hinzugefuegt'; +} \ No newline at end of file diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index 4db82d102..6fac37be7 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -847,6 +847,12 @@ if(isset($_GET['excel'])) if ($('.ort_listitem').length == 0 && $('#max_teilnehmer').val() == '' && $('#ort').val() == '') confirm('Wenn der Reihungstest "Öffentlich" ist, sollten Räume zugeteilt sein, oder "Max TeilnehmerInnen" gesetzt sein'); } + + if ($('#zugangs_ueberpruefung').is(":checked") && $('#zugangcode').val() == '') + { + alert('Wenn die Zugangsüberprüfung aktiviert ist, ist ein Zugangscode verpflichtend.'); + return false; + } }); if ($('#oeffentlich').is(":checked") && $('.ort_listitem').length == 0 && $('#max_teilnehmer').val() == '' && $('#ort').val() == '') @@ -1396,6 +1402,12 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) $error = true; } } + + if (isset($_POST['zugangs_ueberpruefung']) && $_POST['zugangcode'] === '') + { + $messageError .= '

Der Zugangscode muss ausgefüllt sein, wenn die Zugangsüberprüfung aktiviert ist.

'; + $error = true; + } if(!$error) { @@ -1407,6 +1419,8 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); $reihungstest->aufnahmegruppe_kurzbz = filter_input(INPUT_POST, 'aufnahmegruppe'); $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); + $reihungstest->zugangs_ueberpruefung = false; + $reihungstest->zugangscode = null; } else { @@ -1421,6 +1435,8 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); $reihungstest->updateamum = date('Y-m-d H:i:s'); $reihungstest->updatevon = $user; + $reihungstest->zugangs_ueberpruefung = isset($_POST['zugangs_ueberpruefung']); + $reihungstest->zugangscode = ($_POST['zugangcode'] === '' ? null : $_POST['zugangcode']); } $reihungstest->studiengang_kz = $_POST['studiengang_kz']; //$reihungstest->ort_kurzbz = $_POST['ort_kurzbz']; @@ -2504,6 +2520,18 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); (Kurz vor Testbeginn aktivieren) + + Zugangsüberprüfung + + zugangs_ueberpruefung ? 'checked="checked"' : '' ?>> + + + + Zugangscode + + (Verpflichtend, wenn die Zugangsüberprüfung aktiviert ist) + +