diff --git a/auth/cas/auth.php b/auth/cas/auth.php index 6615b755931..9d83dd18294 100644 --- a/auth/cas/auth.php +++ b/auth/cas/auth.php @@ -111,6 +111,26 @@ class auth_plugin_cas extends auth_plugin_ldap { return; } + // If the multi-authentication setting is used, check for the param before connecting to CAS. + if ($this->config->multiauth) { + $authCAS = optional_param('authCAS', '', PARAM_RAW); + if ($authCAS == 'NOCAS') { + return; + } + // Show authentication form for multi-authentication. + // Test pgtIou parameter for proxy mode (https connection in background from CAS server to the php server). + if ($authCAS != 'CAS' && !isset($_GET['pgtIou'])) { + $PAGE->set_url('/login/index.php'); + $PAGE->navbar->add($CASform); + $PAGE->set_title("$site->fullname: $CASform"); + $PAGE->set_heading($site->fullname); + echo $OUTPUT->header(); + include($CFG->dirroot.'/auth/cas/cas_form.html'); + echo $OUTPUT->footer(); + exit(); + } + } + // Connection to CAS server $this->connectCAS(); @@ -134,27 +154,6 @@ class auth_plugin_cas extends auth_plugin_ldap { return; } - if ($this->config->multiauth) { - $authCAS = optional_param('authCAS', '', PARAM_RAW); - if ($authCAS == 'NOCAS') { - return; - } - - // Show authentication form for multi-authentication - // test pgtIou parameter for proxy mode (https connection - // in background from CAS server to the php server) - if ($authCAS != 'CAS' && !isset($_GET['pgtIou'])) { - $PAGE->set_url('/login/index.php'); - $PAGE->navbar->add($CASform); - $PAGE->set_title("$site->fullname: $CASform"); - $PAGE->set_heading($site->fullname); - echo $OUTPUT->header(); - include($CFG->dirroot.'/auth/cas/cas_form.html'); - echo $OUTPUT->footer(); - exit(); - } - } - // Force CAS authentication (if needed). if (!phpCAS::isAuthenticated()) { phpCAS::setLang($this->config->language);