Tidy up requiredip work.
authorDan Marsden <dan@danmarsden.com>
Mon, 21 Nov 2016 01:58:08 +0000 (14:58 +1300)
committerDan Marsden <dan@danmarsden.com>
Mon, 21 Nov 2016 01:58:08 +0000 (14:58 +1300)
attendance.php
db/install.xml
db/upgrade.php
lang/en/attendance.php
mod_form.php
version.php

index d4c071a..f702fbf 100644 (file)
@@ -43,6 +43,13 @@ if (empty(get_config('attendance', 'studentscanmark')) || empty($attforsession->
     redirect(new moodle_url('/mod/attendance/view.php', array('id' => $cm->id)));
     exit;
 }
+
+// Check if subnet is set and if the user is in the allowed range.
+if (!empty($attendance->subnet) && !address_in_subnet(getremoteaddr(), $attendance->subnet)) {
+    notice(get_string('subnetwrong', 'attendance'));
+    exit; // Notice calls this anyway.
+}
+
 $pageparams->sessionid = $id;
 $att = new mod_attendance_structure($attendance, $cm, $course, $PAGE->context, $pageparams);
 
@@ -83,15 +90,5 @@ $PAGE->navbar->add($att->name);
 
 $output = $PAGE->get_renderer('mod_attendance');
 echo $output->header();
-if (!empty ($attendance->subnet)) {
-    if (!address_in_subnet(getremoteaddr(), $attendance->subnet)) {
-        $wrongip = html_writer::tag('p', get_string('subnetwrong', 'attendance'));
-        $button = html_writer::tag('p', $output->continue_button($CFG->wwwroot . '/course/view.php?id=' . $course->id));
-        echo $output->box($wrongip ."\n\n".$button."\n", 'generalbox', 'notice');
-        } else {
-            $mform->display();
-    } else {
-        $mform->display();
-}
-
+$mform->display();
 echo $output->footer();
index ac9f7a0..0704227 100644 (file)
@@ -11,7 +11,7 @@
         <FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="false" SEQUENCE="false"/>
         <FIELD NAME="grade" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="100" SEQUENCE="false" COMMENT="This is maximum grade for instance"/>
         <FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="The time the settings for this attendance instance were last modified."/>
-        <FIELD NAME="subnet" TYPE="char" LENGTH="255" NOTNULL="false" SEQUENCE="false" COMMENT="add ability to restrict by IP."/>
+        <FIELD NAME="subnet" TYPE="char" LENGTH="255" NOTNULL="false" SEQUENCE="false" COMMENT="Restrict ability for students to mark by subnet."/>
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for attendance"/>
index 8bf2f4a..8457cda 100644 (file)
@@ -191,13 +191,13 @@ function xmldb_attendance_upgrade($oldversion=0) {
         // Attendance savepoint reached.
         upgrade_mod_savepoint(true, 2016082900, 'attendance');
     }
-    if ($oldversion < 201611071400) {
+    if ($oldversion < 2016112100) {
         $table = new xmldb_table('attendance');
-        $newfield = $table->add_field('subnet', XMLDB_TYPE_CHAR, '255', null, null, null, null);
+        $newfield = $table->add_field('subnet', XMLDB_TYPE_CHAR, '255', null, null, null, null, 'timemodified');
         if (!$dbman->field_exists($table, $newfield)) {
             $dbman->add_field($table, $newfield);
         }
-        upgrade_mod_savepoint(true, 201611071400, 'attendance');
+        upgrade_mod_savepoint(true, 2016112100, 'attendance');
     }
 
     return $result;
index dc6b702..d0dc440 100644 (file)
@@ -333,6 +333,6 @@ $string['repeaton'] = 'Repeat on';
 $string['invalidsessionendtime'] = 'The end time must be greater than start time';
 $string['deletedgroup'] = 'The group associated with this session has been deleted';
 $string['extrarestrictions'] = 'Extra restrictions';
-$string['configrequiresubnet'] = 'Students can only record own attendance from these computers.';
+$string['requiresubnet'] = 'Students can only record own attendance from these computers.';
 $string['subnetwrong'] = 'Attendance can only be recorded from certain locations, and this computer is not on the allowed list.';
 $string['requiresubnet_help'] = 'Attendance recording may be restricted to particular subnets by specifying a comma-separated list of partial or full IP addresses.';
\ No newline at end of file
index 682a90e..013a91e 100644 (file)
@@ -43,6 +43,9 @@ class mod_attendance_mod_form extends moodleform_mod {
      */
     public function definition() {
         $attendanceconfig = get_config('attendance');
+        if (!isset($attendanceconfig->subnet)) {
+            $attendanceconfig->subnet = '';
+        }
         $mform    =& $this->_form;
 
         $mform->addElement('header', 'general', get_string('general', 'form'));
index 15fd1c2..4e6153b 100644 (file)
@@ -22,7 +22,7 @@
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-$plugin->version  = 2016110714;
+$plugin->version  = 2016112100;
 $plugin->requires = 2016052300;
 $plugin->release = '3.1.1.1';
 $plugin->maturity  = MATURITY_STABLE;