MDL-60101 auth_oauth2: Don't allow suspended users to SSO in via OAuth2

Without this patch, users could still log in as a suspended account via
OAuth2 SSO feature.
This commit is contained in:
David Mudrák
2018-03-13 10:13:00 +01:00
committed by Jenkins
parent 78ebc5d9e7
commit 5d06da4e41
+14 -1
View File
@@ -403,7 +403,20 @@ class auth extends \auth_plugin_base {
if (!empty($linkedlogin) && empty($linkedlogin->get('confirmtoken'))) {
$mappeduser = get_complete_user_data('id', $linkedlogin->get('userid'));
if ($mappeduser && $mappeduser->confirmed) {
if ($mappeduser && $mappeduser->suspended) {
$failurereason = AUTH_LOGIN_SUSPENDED;
$event = \core\event\user_login_failed::create([
'userid' => $mappeduser->id,
'other' => [
'username' => $userinfo['username'],
'reason' => $failurereason
]
]);
$event->trigger();
$SESSION->loginerrormsg = get_string('invalidlogin');
$client->log_out();
redirect(new moodle_url('/login/index.php'));
} else if ($mappeduser && $mappeduser->confirmed) {
$userinfo = (array) $mappeduser;
$userwasmapped = true;
} else {