- freischaltcode beim RT hinzugefuegt

This commit is contained in:
ma0048
2022-12-01 11:07:47 +01:00
parent 37ec8d84e5
commit d24bc36bf7
7 changed files with 120 additions and 7 deletions
+59 -4
View File
@@ -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 .= '<div class="alert alert-danger">Code ist nicht korrekt.</div>';
}
}
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']))
<?php
if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true &&
isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === false)
{
echo '
<div class="col-xs-11">
<div id="alertmsgdiv"></div>
<div id="alert">'.$alertmsg.'</div>
<div class="row text-center">
'.$p->t('testtool/freischalttext').'
<br />
<br />
<b>'.$p->t('testtool/freischaltcode').':</b>
<form action="login.php">
<input type="hidden" name="prestudent" value="'.$_REQUEST['prestudent'].'" />
<input id="confirmed_code" type="number" name="confirmed_code"/>
<br />
<br />
<button id="confirmation_access_submit" type="submit" class="btn btn-primary"/>
'.$p->t('testtool/start').'
</button>
</form>
</div>
</div>';
}
//REIHUNGSTEST STARTSEITE (nach Login)
if (isset($prestudent_id))
elseif (isset($prestudent_id))
{
$prestudent = new prestudent($prestudent_id);
$stg_obj = new studiengang($prestudent->studiengang_kz);
+12 -3
View File
@@ -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).';';
}
+3
View File
@@ -79,5 +79,8 @@ $this->phrasen['testtool/einfuehrungsText']='
</div>
</div>';
$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. <br /> Wir wünschen Ihnen viel Erfolg.';
?>
+2
View File
@@ -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!<br>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.<br /> We wish you good luck.'
?>
+1
View File
@@ -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 '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -0,0 +1,15 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if(!$result = @$db->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 '<strong>public.tbl_reihungstest: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_reihungstest: Spalte zugangs_ueberpruefung und zugangscode hinzugefuegt';
}
@@ -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 .= '<p>Der Zugangscode muss ausgefüllt sein, wenn die Zugangsüberprüfung aktiviert ist. </p>';
$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)
</td>
</tr>
<tr>
<td class="feldtitel">Zugangsüberprüfung</td>
<td>
<input type="checkbox" id="zugangs_ueberpruefung" name="zugangs_ueberpruefung"<?php echo $reihungstest->zugangs_ueberpruefung ? 'checked="checked"' : '' ?>>
</td>
</tr>
<tr>
<td class="feldtitel">Zugangscode</td>
<td>
<input type="number" class="input" id="zugangcode" name="zugangcode" value="<?php echo $db->convert_html_chars($reihungstest->zugangscode) ?>"> (Verpflichtend, wenn die Zugangsüberprüfung aktiviert ist)
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>