diff --git a/cis/testtool/externeueberwachung.js b/cis/testtool/externeueberwachung.js
new file mode 100644
index 000000000..a40a93e05
--- /dev/null
+++ b/cis/testtool/externeueberwachung.js
@@ -0,0 +1,35 @@
+(function () {
+ /*
+
+ const params = new URLSearchParams(location.search);
+ let expectedOrigin = params.get("examus-client-origin");
+
+ if (!expectedOrigin)
+ {
+ window.top.location.href = 'resetconnection.php';
+ return;
+ }
+ */
+ let proctoringOK = false;
+
+ window.addEventListener("message", function (e) {
+ /*if (e.origin !== expectedOrigin) {
+ return;
+ }*/
+
+ const data = e.data || {};
+
+ if (data.proctoringIsActive)
+ {
+ proctoringOK = true;
+ }
+ });
+
+ setTimeout(function () {
+ if (!proctoringOK)
+ {
+ console.warn("Constructor nicht aktiv!")
+ //window.location.href='resetconnection.php';
+ }
+ }, 1000);
+})();
\ No newline at end of file
diff --git a/cis/testtool/frage.php b/cis/testtool/frage.php
index c38229cdf..4267d6a13 100644
--- a/cis/testtool/frage.php
+++ b/cis/testtool/frage.php
@@ -45,7 +45,7 @@ if (!$db = new basis_db())
$PHP_SELF=$_SERVER["PHP_SELF"];
// Start session
-session_start();
+require_once './session_init.php';
// If language is changed by language select menu, reset language variables
if (isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
@@ -182,6 +182,10 @@ echo '
if(!isset($_SESSION['pruefling_id']))
die($p->t('testtool/bitteZuerstAnmelden'));
+if (!empty($_SESSION['externe_ueberwachung']) && isset($_SESSION['externe_ueberwachung_verified'])): ?>
+
+load($_SESSION['pruefling_id']);
diff --git a/cis/testtool/index.php b/cis/testtool/index.php
index d235e6ce9..9aa6c3f84 100644
--- a/cis/testtool/index.php
+++ b/cis/testtool/index.php
@@ -1,16 +1,78 @@
TestTool - FH Technikum Wien
+
+
+
+
diff --git a/cis/testtool/login.php b/cis/testtool/login.php
index 5a2ae0dea..2b4e678fa 100644
--- a/cis/testtool/login.php
+++ b/cis/testtool/login.php
@@ -40,8 +40,7 @@ if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
// Start session
-session_start();
-
+require_once './session_init.php';
// Logout (triggered by logout button in menu.php)
if (isset($_GET['logout']) && $_GET['logout'] == true)
{
@@ -173,6 +172,12 @@ if (isset($_REQUEST['prestudent']))
else
$reload_menu = true;
}
+
+ if ($rt->externe_ueberwachung)
+ {
+ $_SESSION['externe_ueberwachung'] = true;
+ $_SESSION['externe_ueberwachung_verified'] = false;
+ }
}
$pruefling = new pruefling();
@@ -339,6 +344,8 @@ 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['externe_ueberwachung']) && $_SESSION['externe_ueberwachung'] === true &&
+ isset($_SESSION['externe_ueberwachung_verified']) && $_SESSION['externe_ueberwachung_verified'] === true &&
isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])))
{
$pruefling = new pruefling();
@@ -468,7 +475,13 @@ if (isset($_POST['save']) && isset($_SESSION['prestudent_id']))
top.location.href = 'resetconnection.php';";
+ exit;
+}
+else if (isset($_SESSION['confirmation_needed']) && $_SESSION['confirmation_needed'] === true &&
isset($_SESSION['confirmed_code']) && $_SESSION['confirmed_code'] === false)
{
echo '
diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php
index 7c8b12b9d..2c027c886 100644
--- a/cis/testtool/menu.php
+++ b/cis/testtool/menu.php
@@ -34,7 +34,7 @@ if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
// Start session
-session_start();
+require_once './session_init.php';
// If language is changed by language select menu, reset language and session variables
if(isset($_GET['sprache_user']) && !empty($_GET['sprache_user']))
@@ -73,7 +73,7 @@ if (isset($_SESSION['pruefling_id']))
// Link zur Startseite
echo '|
- '.$p->t('testtool/startseite').'
+ '.$p->t('testtool/startseite').'
|
';
// Link zur Einleitung
@@ -83,7 +83,7 @@ if (isset($_SESSION['pruefling_id']))
{
echo '
|
- '.$p->t('testtool/einleitung').'
+ '.$p->t('testtool/einleitung').'
|
';
}
@@ -379,10 +379,13 @@ if (isset($_SESSION['pruefling_id']))
}
}
+
echo '
+
|
- '.$gebietbezeichnung.'
+ '.$gebietbezeichnung.'
+
|
';
@@ -401,7 +404,7 @@ if (isset($_SESSION['pruefling_id']))
// Link zum Logout
echo '|
- Logout
+ Logout
|
';
echo '';
@@ -461,5 +464,22 @@ else
'');
}
});
+
+ function loadContent(url)
+ {
+ if (parent && typeof parent.loadInContent === 'function')
+ {
+ parent.loadInContent(url);
+ return false;
+ }
+
+ let frame = parent?.frames?.["content"];
+ if (frame)
+ {
+ frame.location.href = url;
+ return false;
+ }
+ }
+