diff --git a/admin/settings/plugins.php b/admin/settings/plugins.php index 599aa088cb3..0e86f80d6df 100644 --- a/admin/settings/plugins.php +++ b/admin/settings/plugins.php @@ -74,6 +74,7 @@ if ($hassiteconfig) { $temp->add(new admin_setting_manageauths()); $temp->add(new admin_setting_heading('manageauthscommonheading', get_string('commonsettings', 'admin'), '')); $temp->add(new admin_setting_special_registerauth()); + $temp->add(new admin_setting_configcheckbox('authpreventaccountcreation', get_string('authpreventaccountcreation', 'admin'), get_string('authpreventaccountcreation_help', 'admin'), 0)); $temp->add(new admin_setting_configcheckbox('loginpageautofocus', get_string('loginpageautofocus', 'admin'), get_string('loginpageautofocus_help', 'admin'), 0)); $temp->add(new admin_setting_configselect('guestloginbutton', get_string('guestloginbutton', 'auth'), get_string('showguestlogin', 'auth'), '1', array('0'=>get_string('hide'), '1'=>get_string('show')))); diff --git a/lang/en/admin.php b/lang/en/admin.php index af28cb4e086..5c026c2dbde 100644 --- a/lang/en/admin.php +++ b/lang/en/admin.php @@ -59,6 +59,8 @@ $string['antivirus'] = 'Anti-Virus'; $string['appearance'] = 'Appearance'; $string['aspellpath'] = 'Path to aspell'; $string['authentication'] = 'Authentication'; +$string['authpreventaccountcreation'] = 'Prevent account creation when authenticating'; +$string['authpreventaccountcreation_help'] = 'When a user authenticates, if they do not yet have an account on the site, usually one will be automatically created for them. It may be that you wish to authenticate using an external system, but you wish to restrict access to the site to users with an existing account only. With this option enabled, only existing users will be able to gain access after they are authenticated via the external system. New accounts will need to be created manually or via the upload users feature.'; $string['authsettings'] = 'Manage authentication'; $string['autolang'] = 'Language autodetect'; $string['autologinguests'] = 'Auto-login guests'; diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 2a512553c75..52064ad2a2e 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -3769,8 +3769,12 @@ function authenticate_user_login($username, $password) { $user = update_user_record($username); } } else { - // if user not found, create him - $user = create_user_record($username, $password, $auth); + // if user not found and user creation is not disabled, create it + if (empty($CFG->authpreventaccountcreation)) { + $user = create_user_record($username, $password, $auth); + } else { + continue; + } } $authplugin->sync_roles($user);