From 2cfcea8635ebd91d73fac7e2933402e882840747 Mon Sep 17 00:00:00 2001 From: binneyd Date: Tue, 17 Apr 2012 16:02:33 +1000 Subject: [PATCH] MODOLE-256 I have modified and fixed my mods to the turnitin plugin so it will ignore any files that are not valid --- .../turnitin/lang/en/plagiarism_turnitin.php | 2 ++ plagiarism/turnitin/lib.php | 18 +++++++++++++++--- plagiarism/turnitin/turnitin_form.php | 5 +++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/plagiarism/turnitin/lang/en/plagiarism_turnitin.php b/plagiarism/turnitin/lang/en/plagiarism_turnitin.php index 93230cd..fefc2c1 100644 --- a/plagiarism/turnitin/lang/en/plagiarism_turnitin.php +++ b/plagiarism/turnitin/lang/en/plagiarism_turnitin.php @@ -69,6 +69,8 @@ $string['tiiaccountid'] ='Turnitin Account ID'; $string['tiiaccountid_help'] ='This is your Account ID as provided from Turnitin.com'; $string['tiiapi'] = 'Turnitin API'; $string['tiiapi_help'] = 'This is the address of the Turnitin API - usually https://api.turnitin.com/api.asp'; +$string['tiifilefilter'] = 'Valid Types'; +$string['tiifilefilter_help'] = 'This is a comma seperated list of files which will stop invalid files being sent to tii and causing errors'; $string['tiiconfigerror'] = 'A site configuration error occured when attempting to send this file to Turnitin'; $string['tiiemailprefix'] ='Student Email prefix'; $string['tiiemailprefix_help'] ='You must set this if you do not want students to be able to log into the turnitin.com site and view full reports.'; diff --git a/plagiarism/turnitin/lib.php b/plagiarism/turnitin/lib.php index d64b742..da95a74 100644 --- a/plagiarism/turnitin/lib.php +++ b/plagiarism/turnitin/lib.php @@ -1493,9 +1493,21 @@ function plagiarism_update_record($cmid, $userid, $identifier, $attempt=0) { $plagiarism_file->identifier = $identifier; $plagiarism_file->statuscode = 'pending'; $plagiarism_file->attempt = $attempt; - if (!$pid = $DB->insert_record('plagiarism_turnitin_files', $plagiarism_file)) { - debugging("insert into turnitin_files failed"); - } + + $extension = end( explode('.', $filename) ); + $filterList = explode(",", get_config('tii', 'turnitin_file_filter')); + $validType = in_array($extension, $filterList); + + if($validType) { + if (!$pid = $DB->insert_record('plagiarism_turnitin_files', $plagiarism_file)) { + debugging("insert into tii_files failed"); + } + } else { + debugging("Invalid type for tii
" . + "Allowed types: " . implode(', ', $filterList) . "
" . + "Uploaded type: $extension" + ); + } return $pid; } return false; diff --git a/plagiarism/turnitin/turnitin_form.php b/plagiarism/turnitin/turnitin_form.php index d33c425..ea80c94 100644 --- a/plagiarism/turnitin/turnitin_form.php +++ b/plagiarism/turnitin/turnitin_form.php @@ -32,6 +32,11 @@ class turnitin_setup_form extends moodleform { $mform->addRule('turnitin_api', null, 'required', null, 'client'); $mform->setDefault('turnitin_api', 'https://api.turnitin.com/api.asp'); + $mform->addElement('text', 'turnitin_file_filter', get_string('tiifilefilter', 'plagiarism_turnitin')); + $mform->addHelpButton('turnitin_file_filter', 'tiifilefilter', 'plagiarism_turnitin'); + $mform->setDefault('turnitin_file_filter', 'doc,docx,wps,html,ps,txt,rtf,pdf'); + $mform->addRule('turnitin_file_filter', null, 'required', null, 'client'); + $mform->addElement('text', 'turnitin_accountid', get_string('tiiaccountid', 'plagiarism_turnitin')); $mform->addHelpButton('turnitin_accountid', 'tiiaccountid', 'plagiarism_turnitin'); $mform->addRule('turnitin_accountid', null, 'numeric', null, 'client'); -- 1.7.8.3