From f10ad2d4eba7613692723cb02ed0d8dfbaaf8555 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Wed, 7 Dec 2011 08:58:18 +0100 Subject: [PATCH 1/3] MDL-30623 make sure guest password field is not null --- enrol/guest/lib.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/enrol/guest/lib.php b/enrol/guest/lib.php index ac4a5cf8963..da1d2f16800 100644 --- a/enrol/guest/lib.php +++ b/enrol/guest/lib.php @@ -327,6 +327,22 @@ class enrol_guest_plugin extends enrol_plugin { } } + /** + * Add new instance of enrol plugin. + * @param object $course + * @param array instance fields + * @return int id of new instance, null if can not be created + */ + public function add_instance($course, array $fields = NULL) { + $fields = (array)$fields; + + if (!isset($fields['password'])) { + $fields['password'] = ''; + } + + return parent::add_instance($course, $fields); + } + /** * Add new instance of enrol plugin with default settings. * @param object $course From a6adddfb7da2664c3411188edb75c358bd047a77 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Wed, 7 Dec 2011 09:13:34 +0100 Subject: [PATCH 2/3] MDL-30623 fix null guest passwords in existing 2.2 sites --- enrol/guest/db/upgrade.php | 43 ++++++++++++++++++++++++++++++++++++++ enrol/guest/version.php | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 enrol/guest/db/upgrade.php diff --git a/enrol/guest/db/upgrade.php b/enrol/guest/db/upgrade.php new file mode 100644 index 00000000000..d04b36ee5d1 --- /dev/null +++ b/enrol/guest/db/upgrade.php @@ -0,0 +1,43 @@ +. + +/** + * This file keeps track of upgrades to the guest enrolment plugin + * + * @package enrol + * @subpackage guest + * @copyright 2011 Petr Skoda {@link http://skodak.org + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +function xmldb_enrol_guest_upgrade($oldversion) { + global $CFG, $DB, $OUTPUT; + + $dbman = $DB->get_manager(); + + if ($oldversion < 2011112901) { + // convert all null passwords to empty strings + $DB->set_field('enrol', 'password', '', array('enrol'=>'guest', 'password'=>null)); + + upgrade_plugin_savepoint(true, 2011112901, 'enrol', 'guest'); + } + + return true; +} + + diff --git a/enrol/guest/version.php b/enrol/guest/version.php index 0f235c6a0d6..125592f212b 100644 --- a/enrol/guest/version.php +++ b/enrol/guest/version.php @@ -25,6 +25,6 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2011112900; // The current plugin version (Date: YYYYMMDDXX) +$plugin->version = 2011112901; // The current plugin version (Date: YYYYMMDDXX) $plugin->requires = 2011112900; // Requires this Moodle version $plugin->component = 'enrol_guest'; // Full name of the plugin (used for diagnostics) From 73553ddbaaaada9d9d9524aab5bbd5629a0e1034 Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Wed, 7 Dec 2011 09:14:44 +0100 Subject: [PATCH 3/3] MDL-30623 fix password upgrade path from 1.9 --- enrol/guest/db/install.php | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 enrol/guest/db/install.php diff --git a/enrol/guest/db/install.php b/enrol/guest/db/install.php new file mode 100644 index 00000000000..c5e8c68d8f4 --- /dev/null +++ b/enrol/guest/db/install.php @@ -0,0 +1,35 @@ +. + +/** + * Guest enrol plugin installation. + * + * @package enrol + * @subpackage guest + * @copyright 2011 Petr Skoda {@link http://skodak.org} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +function xmldb_enrol_guest_install() { + global $CFG, $DB; + + // migrate settings during 2.0 upgrade + + // convert all null passwords to empty strings + $DB->set_field('enrol', 'password', '', array('enrol'=>'guest', 'password'=>null)); +}