MDL-54103 enrol_lti: show frame embedding warning
authorMark Nelson <markn@moodle.com>
Mon, 9 May 2016 09:10:49 +0000 (17:10 +0800)
committerMark Nelson <markn@moodle.com>
Tue, 10 May 2016 07:03:24 +0000 (15:03 +0800)
enrol/lti/lang/en/enrol_lti.php
enrol/lti/settings.php
enrol/lti/tool.php

index efe55ff..29a3ce6 100644 (file)
@@ -22,6 +22,7 @@
  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
+$string['allowframembedding'] = 'In order to avoid problems embedding this site, please enable the \'Allow frame embedding\' setting in Admin > Security > HTTP security.';
 $string['enrolenddate'] = 'End date';
 $string['enrolenddate_help'] = 'If enabled, users can access until this date only.';
 $string['enrolenddateerror'] = 'Enrolment end date cannot be earlier than start date';
@@ -32,6 +33,7 @@ $string['enrolmentfinished'] = 'Enrolment finished.';
 $string['enrolmentnotstarted'] = 'Enrolment has not started.';
 $string['enrolstartdate'] = 'Start date';
 $string['enrolstartdate_help'] = 'If enabled, users can access from this date onward only.';
+$string['framembeddingnotenabled'] = 'The site you are connecting to does not have frame embedding enabled. To access the resource please click on the link below.';
 $string['globalsharedsecret'] = 'Global shared secret';
 $string['gradesync'] = 'Grade synchronisation';
 $string['gradesync_help'] = 'This determines if we want grade synchronisation to occur.';
@@ -48,6 +50,7 @@ $string['membersyncmodeunenrolmissing'] = 'Unenrol missing members';
 $string['notoolsprovided'] = 'No tools provided';
 $string['lti:config'] = 'Configure LTI enrol instances';
 $string['lti:unenrol'] = 'Unenrol users from the course';
+$string['opentool'] = 'Open tool';
 $string['pluginname'] = 'Shared external tool';
 $string['pluginname_desc'] = 'The shared external tool plugin allows externals users to access a course or an activity via a unique link - this requires the LTI authentication plugin to be enabled.';
 $string['remotesystem'] = 'Remote system';
index 6c92669..444ca3f 100644 (file)
@@ -29,6 +29,12 @@ if ($ADMIN->fulltree) {
     $settings->add(new admin_setting_heading('enrol_lti_user_default_values',
         get_string('userdefaultvalues', 'enrol_lti'), ''));
 
+    if (empty($CFG->allowframembedding)) {
+        $notify = new \core\output\notification(get_string('allowframembedding', 'enrol_lti'),
+            \core\output\notification::NOTIFY_WARNING);
+        $settings->add(new admin_setting_heading('enrol_lti_enable_embedding', '', $OUTPUT->render($notify)));
+    }
+
     $choices = array(0 => get_string('emaildisplayno'),
                      1 => get_string('emaildisplayyes'),
                      2 => get_string('emaildisplaycourse'));
index e267341..30a7560 100644 (file)
@@ -204,8 +204,15 @@ if ($ltirequest->valid) {
     // Finalise the user log in.
     complete_user_login($user);
 
-    // All done, redirect the user to where they want to go.
-    redirect($urltogo);
+    if (empty($CFG->allowframembedding)) {
+        // Provide an alternative link.
+        $stropentool = get_string('opentool', 'enrol_lti');
+        echo html_writer::tag('p', get_string('framembeddingnotenabled', 'enrol_lti'));
+        echo html_writer::link($urltogo, $stropentool, array('target' => '_blank'));
+    } else {
+        // All done, redirect the user to where they want to go.
+        redirect($urltogo);
+    }
 } else {
     echo $ltirequest->message;
 }