original_string: function loginpage_hook() {
          global $CFG, $SESSION;
  
          // HTTPS is potentially required
          //httpsrequired(); - this must be used before setting the URL, it is already done on the login/index.php
  
          if (($_SERVER['REQUEST_METHOD'] === 'GET'         // Only on initial GET of loginpage
               || ($_SERVER['REQUEST_METHOD'] === 'POST'
                   && (get_local_referer() != strip_querystring(qualified_me()))))
                                                            // Or when POSTed from another place
                                                            // See MDL-14071
              && !empty($this->config->ntlmsso_enabled)     // SSO enabled
              && !empty($this->config->ntlmsso_subnet)      // have a subnet to test for
              && empty($_GET['authldap_skipntlmsso'])       // haven't failed it yet
              && (isguestuser() || !isloggedin())           // guestuser or not-logged-in users
              && address_in_subnet(getremoteaddr(), $this->config->ntlmsso_subnet)) {
  
              // First, let's remember where we were trying to get to before we got here
              if (empty($SESSION->wantsurl)) {
                  $SESSION->wantsurl = null;
                  $referer = get_local_referer(false);
                  if ($referer &&
                          $referer != $CFG->wwwroot &&
                          $referer != $CFG->wwwroot . '/' &&
                          $referer != $CFG->wwwroot . '/login/' &&
                          $referer != $CFG->wwwroot . '/login/index.php') {
                      $SESSION->wantsurl = $referer;
                  }
              }
  
              // Now start the whole NTLM machinery.
              if($this->config->ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESATTEMPT ||
                  $this->config->ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESFORM) {
                  if (core_useragent::is_ie()) {
                      $sesskey = sesskey();
                      redirect($CFG->wwwroot.'/auth/ldap/ntlmsso_magic.php?sesskey='.$sesskey);
                  } else if ($this->config->ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESFORM) {
                      redirect($CFG->wwwroot.'/login/index.php?authldap_skipntlmsso=1');
                  }
              }
              redirect($CFG->wwwroot.'/auth/ldap/ntlmsso_attempt.php');
          }
  
          // No NTLM SSO, Use the normal login page instead.
  
          // If $SESSION->wantsurl is empty and we have a 'Referer:' header, the login
          // page insists on redirecting us to that page after user validation. If
          // we clicked on the redirect link at the ntlmsso_finish.php page (instead
          // of waiting for the redirection to happen) then we have a 'Referer:' header
          // we don't want to use at all. As we can't get rid of it, just point
          // $SESSION->wantsurl to $CFG->wwwroot (after all, we came from there).
          if (empty($SESSION->wantsurl)
              && (get_local_referer() == $CFG->wwwroot.'/auth/ldap/ntlmsso_finish.php')) {
  
              $SESSION->wantsurl = $CFG->wwwroot;
          }
      }
code: function loginpage_hook() {
          global $CFG, $SESSION;
  
          // HTTPS is potentially required
          //httpsrequired(); - this must be used before setting the URL, it is already done on the login/index.php
  
          if (($_SERVER['REQUEST_METHOD'] === 'GET'         // Only on initial GET of loginpage
               || ($_SERVER['REQUEST_METHOD'] === 'POST'
                   && (get_local_referer() != strip_querystring(qualified_me()))))
                                                            // Or when POSTed from another place
                                                            // See MDL-14071
              && !empty($this->config->ntlmsso_enabled)     // SSO enabled
              && !empty($this->config->ntlmsso_subnet)      // have a subnet to test for
              && empty($_GET['authldap_skipntlmsso'])       // haven't failed it yet
              && (isguestuser() || !isloggedin())           // guestuser or not-logged-in users
              && address_in_subnet(getremoteaddr(), $this->config->ntlmsso_subnet)) {
  
              // First, let's remember where we were trying to get to before we got here
              if (empty($SESSION->wantsurl)) {
                  $SESSION->wantsurl = null;
                  $referer = get_local_referer(false);
                  if ($referer &&
                          $referer != $CFG->wwwroot &&
                          $referer != $CFG->wwwroot . '/' &&
                          $referer != $CFG->wwwroot . '/login/' &&
                          $referer != $CFG->wwwroot . '/login/index.php') {
                      $SESSION->wantsurl = $referer;
                  }
              }
  
              // Now start the whole NTLM machinery.
              if($this->config->ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESATTEMPT ||
                  $this->config->ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESFORM) {
                  if (core_useragent::is_ie()) {
                      $sesskey = sesskey();
                      redirect($CFG->wwwroot.'/auth/ldap/ntlmsso_magic.php?sesskey='.$sesskey);
                  } else if ($this->config->ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESFORM) {
                      redirect($CFG->wwwroot.'/login/index.php?authldap_skipntlmsso=1');
                  }
              }
              redirect($CFG->wwwroot.'/auth/ldap/ntlmsso_attempt.php');
          }
  
          // No NTLM SSO, Use the normal login page instead.
  
          // If $SESSION->wantsurl is empty and we have a 'Referer:' header, the login
          // page insists on redirecting us to that page after user validation. If
          // we clicked on the redirect link at the ntlmsso_finish.php page (instead
          // of waiting for the redirection to happen) then we have a 'Referer:' header
          // we don't want to use at all. As we can't get rid of it, just point
          // $SESSION->wantsurl to $CFG->wwwroot (after all, we came from there).
          if (empty($SESSION->wantsurl)
              && (get_local_referer() == $CFG->wwwroot.'/auth/ldap/ntlmsso_finish.php')) {
  
              $SESSION->wantsurl = $CFG->wwwroot;
          }
      }
code_tokens: function loginpage_hook ( ) { global $ CFG , $ SESSION ; // HTTPS is potentially required //httpsrequired(); - this must be used before setting the URL, it is already done on the login/index.php if ( ( $ _SERVER [ 'REQUEST_METHOD' ] === 'GET' // Only on initial GET of loginpage || ( $ _SERVER [ 'REQUEST_METHOD' ] === 'POST' && ( get_local_referer ( ) != strip_querystring ( qualified_me ( ) ) ) ) ) // Or when POSTed from another place // See MDL-14071 && ! empty ( $ this -> config -> ntlmsso_enabled ) // SSO enabled && ! empty ( $ this -> config -> ntlmsso_subnet ) // have a subnet to test for && empty ( $ _GET [ 'authldap_skipntlmsso' ] ) // haven't failed it yet && ( isguestuser ( ) || ! isloggedin ( ) ) // guestuser or not-logged-in users && address_in_subnet ( getremoteaddr ( ) , $ this -> config -> ntlmsso_subnet ) ) { // First, let's remember where we were trying to get to before we got here if ( empty ( $ SESSION -> wantsurl ) ) { $ SESSION -> wantsurl = null ; $ referer = get_local_referer ( false ) ; if ( $ referer && $ referer != $ CFG -> wwwroot && $ referer != $ CFG -> wwwroot . '/' && $ referer != $ CFG -> wwwroot . '/login/' && $ referer != $ CFG -> wwwroot . '/login/index.php' ) { $ SESSION -> wantsurl = $ referer ; } } // Now start the whole NTLM machinery. if ( $ this -> config -> ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESATTEMPT || $ this -> config -> ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESFORM ) { if ( core_useragent :: is_ie ( ) ) { $ sesskey = sesskey ( ) ; redirect ( $ CFG -> wwwroot . '/auth/ldap/ntlmsso_magic.php?sesskey=' . $ sesskey ) ; } else if ( $ this -> config -> ntlmsso_ie_fastpath == AUTH_NTLM_FASTPATH_YESFORM ) { redirect ( $ CFG -> wwwroot . '/login/index.php?authldap_skipntlmsso=1' ) ; } } redirect ( $ CFG -> wwwroot . '/auth/ldap/ntlmsso_attempt.php' ) ; } // No NTLM SSO, Use the normal login page instead. // If $SESSION->wantsurl is empty and we have a 'Referer:' header, the login // page insists on redirecting us to that page after user validation. If // we clicked on the redirect link at the ntlmsso_finish.php page (instead // of waiting for the redirection to happen) then we have a 'Referer:' header // we don't want to use at all. As we can't get rid of it, just point // $SESSION->wantsurl to $CFG->wwwroot (after all, we came from there). if ( empty ( $ SESSION -> wantsurl ) && ( get_local_referer ( ) == $ CFG -> wwwroot . '/auth/ldap/ntlmsso_finish.php' ) ) { $ SESSION -> wantsurl = $ CFG -> wwwroot ; } }
docstring: Will get called before the login page is shownr. Ff NTLM SSO
  is enabled, and the user is in the right network, we'll redirect
  to the magic NTLM page for SSO...
docstring_tokens: Will get called before the login page is shownr . Ff NTLM SSO is enabled and the user is in the right network we ll redirect to the magic NTLM page for SSO ...