function get_course_mapping_for_sync(&$err, $config) { $course_mapping = array(); if ($config->supportcourses == 'external') { require_once "DBNewConnection.php"; $DB_mapping = DBNewConnection($config->externalcoursemappingdsn); $rs = false; if ($DB_mapping) { $DB_mapping->SetFetchMode(ADODB_FETCH_ASSOC); $rs = $DB_mapping->Execute($config->externalcoursemappingsql); if ($rs !== false) { $res_array = $rs->GetAll(); } $DB_mapping->Disconnect(); } } else { global $DB; $fields = 'course_mapping_id, saml_course_id, saml_course_period , lms_course_id'; $rs = $DB->get_records_select('course_mapping', '', null, '', $fields, 0, 0); if ($rs !== false) { $res_array = $rs; } } if ($rs === false) { $err['course_mapping_db'][] = get_string("auth_saml_error_executing_course_mapping_query", "auth_saml"); } else { //creating the courses mapping foreach ($res_array as $tuple) { $tuple = array_change_key_case((array) $tuple, CASE_LOWER); if (empty($tuple['saml_course_id']) || empty($tuple['saml_course_period']) || empty($tuple['lms_course_id'])) { $err['role_mapping_db'][] = "<p>" . get_string("auth_saml_error_attribute_course_mapping", "auth_saml") . "</p><p>saml_course_id:" . $tuple['saml_course_id'] . " saml_course_period: " . $tuple['saml_course_period'] . " lms_course_id:" . $tuple['lms_course_id'] . "</p>"; } else { if (isset($course_mapping[$tuple['saml_course_id']][$tuple['saml_course_period']])) { $err['course_mapping_db'][] = get_string('auth_saml_duplicated_saml_data', "auth_saml") . ' saml_course_id:' . $tuple['saml_course_id'] . ' saml_course_period:' . $tuple['saml_course_period']; } else { $course_mapping[$tuple['saml_course_id']][$tuple['saml_course_period']] = $tuple['lms_course_id']; } } } unset($res_array); unset($rs); } return $course_mapping; }
function get_role_mapping_for_sync(&$err, $config) { $role_mapping = array(); if ($config->supportcourses == 'external') { require_once "DBNewConnection.php"; $DB_mapping = DBNewConnection($config->externalrolemappingdsn); $rs = false; if ($DB_mapping) { $DB_mapping->SetFetchMode(ADODB_FETCH_ASSOC); $rs = $DB_mapping->Execute($config->externalrolemappingsql); if ($rs !== false) { $saml_roles = $rs->GetAll(); } $DB_mapping->Disconnect(); } } else { global $DB; $rs = $DB->get_records_select('role_mapping', '', null, '', '*', 0, 0); if ($rs !== false) { $saml_roles = $rs; } } if ($rs === false) { $err['role_mapping_db'][] = get_string("auth_saml_error_executing_role_mapping_query", "auth_saml"); } else { foreach ($saml_roles as $role) { $role = array_change_key_case((array) $role, CASE_LOWER); if (empty($role['lms_role']) || empty($role['saml_role'])) { $err['role_mapping_db'][] = "<p>" . get_string("auth_saml_error_attribute_role_mapping", "auth_saml") . "</p><p>saml_role: " . $role['saml_role'] . " lms_role: " . $role['lms_role'] . "</p>"; } else { if (isset($role_mapping[$role['saml_role']])) { $err['role_mapping_db'][] = get_string('auth_saml_duplicated_saml_data', "auth_saml") . ' saml_role:' . $role['saml_role']; } else { $role_mapping[$role['saml_role']] = $role['lms_role']; } } } unset($rs); unset($saml_roles); } return $role_mapping; }