Prevent MNet error message when multiple records for the user are found in mnet_session table

This commit is contained in:
David Mudrak 2010-11-26 09:20:06 +00:00
parent 35d76df31d
commit ee4cd8f16d

View file

@ -464,9 +464,16 @@ class auth_plugin_mnet extends auth_plugin_base {
}
// make sure it is a user we have an in active session
// with that host...
if (!$userid = $DB->get_field('mnet_session', 'userid',
array('username'=>$username, 'mnethostid'=>$remoteclient->id))) {
throw new mnet_server_exception(1, 'authfail_nosessionexists');
$mnetsessions = $DB->get_records('mnet_session', array('username' => $username, 'mnethostid' => $remoteclient->id), '', 'id, userid');
$userid = null;
foreach ($mnetsessions as $mnetsession) {
if (is_null($userid)) {
$userid = $mnetsession->userid;
continue;
}
if ($userid != $mnetsession->userid) {
throw new mnet_server_exception(3, 'authfail_usermismatch');
}
}
if (empty($courses)) { // no courses? clear out quickly