diff --git a/auth.php b/auth.php
index 05570c0..b196694 100644
--- a/auth.php
+++ b/auth.php
@@ -191,87 +191,6 @@ class auth_plugin_userkey extends auth_plugin_base {
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 $userfields
- */
- public function config_form($config, $err, $userfields) {
- global $CFG, $OUTPUT;
-
- $config = (object) array_merge($this->defaults, (array) $config);
- include("settings.html");
- }
-
- /**
- * A chance to validate form data, and last chance to
- * do stuff before it is inserted in config_plugin
- *
- * @param object $form with submitted configuration settings (without system magic quotes)
- * @param array $err array of error messages
- *
- * @return array of any errors
- */
- public function validate_form($form, &$err) {
- if ((int)$form->keylifetime == 0) {
- $err['keylifetime'] = get_string('incorrectkeylifetime', 'auth_userkey');
- }
-
- if (!$this->is_valid_url($form->redirecturl)) {
- $err['redirecturl'] = get_string('incorrectredirecturl', 'auth_userkey');
- }
-
- if (!$this->is_valid_url($form->ssourl)) {
- $err['ssourl'] = get_string('incorrectssourl', 'auth_userkey');
- }
-
- }
-
- /**
- * Check if provided url is correct.
- *
- * @param string $url URL to check.
- *
- * @return bool
- */
- protected function is_valid_url($url) {
- if (empty($url)) {
- return true;
- }
-
- if (filter_var($url, FILTER_VALIDATE_URL) === false) {
- return false;
- }
-
- if (!preg_match("/^(http|https):/", $url)) {
- return false;
- }
-
- return true;
- }
-
- /**
- * Process and stores configuration data for this authentication plugin.
- *
- * @param object $config Config object from the form.
- *
- * @return bool
- */
- public function process_config($config) {
- foreach ($this->defaults as $key => $value) {
- if (!isset($this->config->$key) || $config->$key != $this->config->$key) {
- set_config($key, $config->$key, 'auth_userkey');
- }
- }
-
- return true;
- }
-
/**
* Set userkey manager.
*
diff --git a/settings.html b/settings.html
deleted file mode 100644
index d82c526..0000000
--- a/settings.html
+++ /dev/null
@@ -1,88 +0,0 @@
-.
-
-/**
-* Settings for the plugin.
-*
-* @package auth_userkey
-* @copyright 2016 Dmitrii Metelkin (dmitriim@catalyst-au.net)
-* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
-*/
-
-$yesno = array(get_string('no'), get_string('yes'));
-$fields = get_auth_plugin('userkey')->get_allowed_mapping_fields();
-
-?>
-
-
-
- |
-
- $field, false) ?>
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
- |
-
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
- |
- $field, false) ?>
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
- |
-
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
- |
-
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
- |
-
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
- |
- $field, false) ?>
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
- |
- $field, false) ?>
- notification($err[$field], 'notifyfailure'); } ?>
- |
-
-
-
diff --git a/settings.php b/settings.php
new file mode 100644
index 0000000..10c3738
--- /dev/null
+++ b/settings.php
@@ -0,0 +1,62 @@
+.
+
+/**
+ * Admin settings and defaults
+ *
+ * @package auth_userkey
+ * @copyright 2017 Stephen Bourget
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die;
+
+if ($ADMIN->fulltree) {
+ $yesno = array(get_string('no'), get_string('yes'));
+ $fields = get_auth_plugin('userkey')->get_allowed_mapping_fields();
+
+ $settings->add(new admin_setting_configselect('auth_userkey/mappingfield',
+ new lang_string('mappingfield', 'auth_userkey'),
+ new lang_string('mappingfield_desc', 'auth_userkey'), 0, $fields));
+
+ $settings->add(new admin_setting_configtext('auth_userkey/keylifetime', get_string('keylifetime', 'auth_userkey'),
+ get_string('keylifetime_desc', 'auth_userkey', 'auth'),
+ '60', PARAM_INT));
+
+ $settings->add(new admin_setting_configselect('auth_userkey/iprestriction',
+ new lang_string('iprestriction', 'auth_userkey'),
+ new lang_string('iprestriction_desc', 'auth_userkey'), 0, $yesno));
+
+ $settings->add(new admin_setting_configtext('auth_userkey/ipwhitelist', get_string('ipwhitelist', 'auth_userkey'),
+ get_string('ipwhitelist_desc', 'auth_userkey', 'auth'),
+ '', PARAM_TEXT));
+
+ $settings->add(new admin_setting_configtext('auth_userkey/redirecturl', get_string('redirecturl', 'auth_userkey'),
+ get_string('redirecturl_desc', 'auth_userkey', 'auth'),
+ '', PARAM_URL));
+
+ $settings->add(new admin_setting_configtext('auth_userkey/ssourl', get_string('ssourl', 'auth_userkey'),
+ get_string('ssourl_desc', 'auth_userkey', 'auth'),
+ '', PARAM_URL));
+
+ $settings->add(new admin_setting_configselect('auth_userkey/createuser',
+ new lang_string('createuser', 'auth_userkey'),
+ new lang_string('createuser_desc', 'auth_userkey'), 0, $yesno));
+
+ $settings->add(new admin_setting_configselect('auth_userkey/updateuser',
+ new lang_string('updateuser', 'auth_userkey'),
+ new lang_string('updateuser_desc', 'auth_userkey'), 0, $yesno));
+}
diff --git a/tests/auth_plugin_test.php b/tests/auth_plugin_test.php
index abec749..ccd81dc 100644
--- a/tests/auth_plugin_test.php
+++ b/tests/auth_plugin_test.php
@@ -633,46 +633,6 @@ class auth_plugin_userkey_testcase extends advanced_testcase {
set_config('updateuser', false, 'auth_userkey');
}
- /**
- * Test that we can validate keylifetime for config form correctly.
- */
- public function test_validate_keylifetime_for_config_form() {
- $form = new stdClass();
-
- $form->redirecturl = '';
- $form->ssourl = '';
-
- $form->keylifetime = '';
- $err = array();
- $this->auth->validate_form($form, $err);
- $this->assertEquals('User key life time should be a number', $err['keylifetime']);
-
- $form->keylifetime = '0';
- $err = array();
- $this->auth->validate_form($form, $err);
- $this->assertEquals('User key life time should be a number', $err['keylifetime']);
-
- $form->keylifetime = '1';
- $err = array();
- $this->auth->validate_form($form, $err);
- $this->assertFalse(array_key_exists('keylifetime', $err));
-
- $form->keylifetime = 0;
- $err = array();
- $this->auth->validate_form($form, $err);
- $this->assertEquals('User key life time should be a number', $err['keylifetime']);
-
- $form->keylifetime = 1;
- $err = array();
- $this->auth->validate_form($form, $err);
- $this->assertFalse(array_key_exists('keylifetime', $err));
-
- $form->keylifetime = 'rkjflj';
- $err = array();
- $this->auth->validate_form($form, $err);
- $this->assertEquals('User key life time should be a number', $err['keylifetime']);
- }
-
/**
* Data provider for testing URL validation functions.
*
@@ -693,98 +653,6 @@ class auth_plugin_userkey_testcase extends advanced_testcase {
);
}
- /**
- * Test that we can validate redirecturl for config form correctly.
- *
- * @dataProvider url_data_provider
- */
-
- /**
- * Test that we can validate redirecturl for config form correctly.
- *
- * @dataProvider url_data_provider
- *
- * @param string $url URL to test.
- * @param string $errortext Expected error text.
- */
- public function test_validate_redirecturl_for_config_form($url, $errortext) {
- $form = new stdClass();
-
- $form->keylifetime = 10;
- $form->ssourl = '';
-
- $form->redirecturl = $url;
- $err = array();
- $this->auth->validate_form($form, $err);
-
- if (empty($errortext)) {
- $this->assertFalse(array_key_exists('redirecturl', $err));
- } else {
- $this->assertArrayHasKey('redirecturl', $err);
- $this->assertEquals($errortext, $err['redirecturl']);
- }
- }
-
- /**
- * Test that we can validate ssourl for config form correctly.
- *
- * @dataProvider url_data_provider
- *
- * @param string $url URL to test.
- * @param string $errortext Expected error text.
- */
- public function test_validate_ssourl_for_config_form($url, $errortext) {
- $form = new stdClass();
-
- $form->keylifetime = 10;
- $form->redirecturl = '';
- $form->ssourl = '';
-
- $form->ssourl = $url;
- $err = array();
- $this->auth->validate_form($form, $err);
-
- if (empty($errortext)) {
- $this->assertFalse(array_key_exists('ssourl', $err));
- } else {
- $this->assertArrayHasKey('ssourl', $err);
- $this->assertEquals($errortext, $err['ssourl']);
- }
- }
-
- /**
- * Test that we can process config form.
- */
- public function test_process_config_form() {
- $config = get_config('auth_userkey');
-
- $this->assertObjectNotHasAttribute('mappingfield', $config);
- $this->assertObjectNotHasAttribute('keylifetime', $config);
- $this->assertObjectNotHasAttribute('iprestriction', $config);
-
- $formconfig = new stdClass();
- $formconfig->mappingfield = 'email';
- $formconfig->keylifetime = 100;
- $formconfig->iprestriction = 0;
- $formconfig->ipwhitelist = '';
- $formconfig->redirecturl = 'http://google.com/';
- $formconfig->ssourl = 'http://google.com/';
- $formconfig->createuser = false;
- $formconfig->updateuser = false;
-
- $this->auth->process_config($formconfig);
-
- $config = get_config('auth_userkey');
- $this->assertObjectHasAttribute('mappingfield', $config);
- $this->assertObjectHasAttribute('keylifetime', $config);
- $this->assertObjectHasAttribute('iprestriction', $config);
-
- $this->assertEquals('email', $config->mappingfield);
- $this->assertEquals(100, $config->keylifetime);
- $this->assertEquals(0, $config->iprestriction);
- $this->assertEquals('http://google.com/', $config->redirecturl);
- }
-
/**
* Test required parameter exception gets thrown id try to login, but key is not set.
*