if ($userObject->has_role('Staff') and check_staff_modules($moduleID, $userObject)) { // No further security checks. } else { // Treat as student with extra security checks. // Get the module IDs for this paper $modIDs = array_keys(Paper_utils::get_modules($propertyObj->get_property_id(), $mysqli)); // Check for additional password on the paper check_paper_password($propertyObj->get_password(), $string, $mysqli); // Check time security check_datetime($propertyObj->get_start_date(), $propertyObj->get_end_date(), $string, $mysqli); // Check room security $low_bandwidth = check_labs($propertyObj->get_paper_type(), $propertyObj->get_labs(), $current_address, $propertyObj->get_password(), $string, $mysqli); // Check modules if the user is a student and the paper is not formative $attempt = check_modules($userObject, $modIDs, $propertyObj->get_calendar_year(), $string, $mysqli); // Check for any metadata security restrictions check_metadata($propertyObj->get_property_id(), $userObject, $modIDs, $string, $mysqli); $summative_exam_session_started = false; } $is_preview = (isset($_POST['mode']) and $_POST['mode'] == 'preview'); $paper_scheduled = $propertyObj->get_start_date() !== null; if ($propertyObj->get_exam_duration() != null and $propertyObj->get_paper_type() == '2') { $log_lab_end_time = new LogLabEndTime($lab_id, $propertyObj, $mysqli); $summative_exam_session_started = $log_lab_end_time->get_session_end_date_datetime(); } if (!$is_preview and time() > $propertyObj->get_end_date() and ($propertyObj->get_paper_type() == '1' or $propertyObj->get_paper_type() == '2' and $paper_scheduled and $summative_exam_session_started == false)) { $propertyObj->set_paper_type('_late'); } $preview_q_id = isset($_GET['q_id']) ? $_GET['q_id'] : null; $log_metadata = new LogMetadata($userObject->get_user_ID(), $propertyObj->get_property_id(), $mysqli); if ($log_metadata->get_record() === false) { $notice->access_denied($mysqli, $string, $string['error_paper'], false);
$current_address = NetworkUtils::get_client_address(); $moduleID = $propertyObj->get_modules(); if ($userObject->has_role('Staff') and check_staff_modules($moduleID, $userObject)) { // No further security checks. } else { // Treat as student with extra security checks. // Check for additional password on the paper check_paper_password($password, $string, $mysqli); // Check time security check_datetime($start_date, $end_date, $string, $mysqli); // Check room security $low_bandwidth = check_labs($propertyObj->get_paper_type(), $propertyObj->get_labs(), $current_address, $propertyObj->get_password(), $string, $mysqli); // Get modules if the user is a student and the paper is not formative $attempt = check_modules($userObject, $modIDs, $calendar_year, $string, $mysqli); // Check for any metadata security restrictions check_metadata($property_id, $userObject, $modIDs, $string, $mysqli); } // Get lab info used in log metadata $lab_factory = new LabFactory($mysqli); if ($lab_object = $lab_factory->get_lab_based_on_client($current_address)) { $lab_name = $lab_object->get_name(); $lab_id = $lab_object->get_id(); } if (time() > $end_date and ($paper_type == '1' or $paper_type == '2')) { $paper_type = '_late'; } // Lookup previous sessionid from log_metadata.started property_id $log_metadata = new LogMetadata($userObject->get_user_ID(), $propertyObj->get_property_id(), $mysqli); $sessionid = $log_metadata->get_session_id(); $metadataID = $log_metadata->get_metadata_id(); /*
$modIDs = array_keys(Paper_utils::get_modules($paperID, $mysqli)); $moduleID = $propertyObj->get_modules(); if ($userObject->has_role('Staff') and check_staff_modules($moduleID, $userObject)) { // No further security checks. } else { // Treat as student with extra security checks. // Check for additional password on the paper. check_paper_password($propertyObj->get_password(), $string, $mysqli); // Check time security. check_datetime($propertyObj->get_start_date(), $propertyObj->get_end_date(), $string, $mysqli); //Check room security. $low_bandwidth = check_labs($propertyObj->get_paper_type(), $propertyObj->get_labs(), $current_address, $propertyObj->get_password(), $string, $mysqli); // Check modules if the user is a student and the paper is not formative. $attempt = check_modules($userObject, $modIDs, $propertyObj->get_calendar_year(), $string, $mysqli); // Check for any metadata security restrictions. check_metadata($paperID, $userObject, $modIDs, $string, $mysqli); // Check if the student has clicked 'Finish'. check_finished($propertyObj, $userObject, $string, $mysqli); } // Get lab info used in log metadata. $lab_factory = new LabFactory($mysqli); if ($lab_object = $lab_factory->get_lab_based_on_client($current_address)) { $lab_name = $lab_object->get_name(); $lab_id = $lab_object->get_id(); } /* * Set the default state */ $log_metadata = null; $current_screen = 1; $is_fire_alarm = (isset($_POST['fire_alarm']) and $_POST['fire_alarm'] == '1');