diff --git a/auth.php b/auth.php index 3791216..c384a1e 100644 --- a/auth.php +++ b/auth.php @@ -19,8 +19,7 @@ * and then optionally allows only a subset of IPs to connect, * it also shows an outage notification to users. * - * @package auth - * @subpackage outage + * @package auth_outage * @author Marcus Boon * @license http://www.gnu.org/copyleft/gpl.html GNU Public License */ @@ -29,12 +28,17 @@ if (!defined('MOODLE_INTERNAL')) { die('Direct access to this script is forbidden.'); // It must be included from a Moodle page. } -require_once($CFG->libdir.'/authlib.php'); +require_once($CFG->libdir . '/authlib.php'); -class auth_plugin_outage extends auth_plugin_base { - - public function __construct() { +/** + * Class auth_plugin_outage + */ +class auth_plugin_outage extends auth_plugin_base +{ + public function __construct() + { + $this->pluginconfig = 'auth_outage'; $this->authtype = 'outage'; $this->roleauth = 'auth_outage'; $this->component = 'auth_outage'; @@ -42,6 +46,88 @@ class auth_plugin_outage extends auth_plugin_base { $this->config = get_config('auth_outage'); // Set to defaults if undefined. - $this->config = $this->set_defaults($this->config); + //$this->config = $this->set_defaults($this->config); } + + /** + * This is the primary method that is used by the authenticate_user_login() + * function in moodlelib.php. + * + * This method should return a boolean indicating + * whether or not the username and password authenticate successfully. + * + * Returns true if the username and password work and false if they are + * wrong or don't exist. + * + * @param string $username The username (with system magic quotes) + * @param string $password The password (with system magic quotes) + * + * @return bool Authentication success or failure. + */ + function user_login($username, $password) + { + // do not authenticate users + return false; + } + +// /** +// * Prints a form for configuring this authentication plugin. +// * +// * This function is called from admin/auth.php, and outputs a full page with +// * a form for configuring this plugin. +// * +// * @param object $config +// * @param object $err +// * @param array $user_fields +// */ +// function config_form($config, $err, $user_fields) +// { +// require('config.php'); +// } +// +// /** +// * A chance to validate form data, and last chance to +// * do stuff before it is inserted in config_plugin +// * @param object object with submitted configuration settings (without system magic quotes) +// * @param array $err array of error messages +// */ +// function validate_form($form, &$err) +// { +// if (strlen(trim($form->default_warning_message)) == 0) { +// $err['invalid_message'] = 'Please provide a descriptive message.'; +// } +// +// $starts = DateTime::createFromFormat('Y-m-d\\TH:i', $form->starts); +// if ($starts === false) { +// $err['invalid_start'] = 'Invalid start date.'; +// } +// } +// +// /** +// * Processes and stores configuration data for this authentication plugin. +// * +// * @param object object with submitted configuration settings (without system magic quotes) +// */ +// function process_config($config) +// { +// if (!isset($config->active)) { +// $config->active = 'N'; +// } +// if (!isset($config->message)) { +// $config->message = 'Maintenance scheduled from %s to %s.'; +// } +// if (!isset($config->starts)) { +// $config->starts = ''; +// } +// if (!isset($config->ends)) { +// $config->ends = ''; +// } +// +// set_config('active', ($config->active == 'Y' ? 'Y' : 'N'), $this->pluginconfig); +// set_config('message', trim($config->message), $this->pluginconfig); +// set_config('starts', $config->starts, $this->pluginconfig); +// set_config('ends', $config->ends, $this->pluginconfig); +// +// return true; +// } } diff --git a/db/install.xml b/db/install.xml new file mode 100644 index 0000000..5315554 --- /dev/null +++ b/db/install.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + +
+
+
\ No newline at end of file diff --git a/lang/en/auth_outage.php b/lang/en/auth_outage.php new file mode 100644 index 0000000..277d215 --- /dev/null +++ b/lang/en/auth_outage.php @@ -0,0 +1,12 @@ + + * @copyright Catalyst IT + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +$string['auth_outagedescription'] = 'Auxiliary plugin that warns users about a future outage and prevents them from logging in once the outage starts.'; +$string['pluginname'] = 'Outage'; diff --git a/settings.php b/settings.php new file mode 100644 index 0000000..253957b --- /dev/null +++ b/settings.php @@ -0,0 +1,22 @@ +. + +defined('MOODLE_INTERNAL') || die; + +if ($ADMIN->fulltree) { + $settings->add(new admin_setting_configselect('data_auth_outage', get_string('enablerssfeeds', 'admin'), + $str, 0, $options)); +}