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)
+ |
+
| |