original_string: public static function logout_file_session($spsessionid) {
          global $CFG;
  
          if (!empty($CFG->session_file_save_path)) {
              $dir = $CFG->session_file_save_path;
          } else {
              $dir = $CFG->dataroot . '/sessions';
          }
  
          if (is_dir($dir)) {
              if ($dh = opendir($dir)) {
                  // Read all session files.
                  while (($file = readdir($dh)) !== false) {
                      // Check if it is a file.
                      if (is_file($dir.'/'.$file)) {
                          // Read session file data.
                          $data = file($dir.'/'.$file);
                          if (isset($data[0])) {
                              $usersession = self::unserializesession($data[0]);
                              // Check if we have found session that shall be deleted.
                              if (isset($usersession['SESSION']) && isset($usersession['SESSION']->shibboleth_session_id)) {
                                  // If there is a match, delete file.
                                  if ($usersession['SESSION']->shibboleth_session_id == $spsessionid) {
                                      // Delete session file.
                                      if (!unlink($dir.'/'.$file)) {
                                          return new SoapFault('LogoutError', 'Could not delete Moodle session file.');
                                      }
                                  }
                              }
                          }
                      }
                  }
                  closedir($dh);
              }
          }
      }
code: public static function logout_file_session($spsessionid) {
          global $CFG;
  
          if (!empty($CFG->session_file_save_path)) {
              $dir = $CFG->session_file_save_path;
          } else {
              $dir = $CFG->dataroot . '/sessions';
          }
  
          if (is_dir($dir)) {
              if ($dh = opendir($dir)) {
                  // Read all session files.
                  while (($file = readdir($dh)) !== false) {
                      // Check if it is a file.
                      if (is_file($dir.'/'.$file)) {
                          // Read session file data.
                          $data = file($dir.'/'.$file);
                          if (isset($data[0])) {
                              $usersession = self::unserializesession($data[0]);
                              // Check if we have found session that shall be deleted.
                              if (isset($usersession['SESSION']) && isset($usersession['SESSION']->shibboleth_session_id)) {
                                  // If there is a match, delete file.
                                  if ($usersession['SESSION']->shibboleth_session_id == $spsessionid) {
                                      // Delete session file.
                                      if (!unlink($dir.'/'.$file)) {
                                          return new SoapFault('LogoutError', 'Could not delete Moodle session file.');
                                      }
                                  }
                              }
                          }
                      }
                  }
                  closedir($dh);
              }
          }
      }
code_tokens: public static function logout_file_session ( $ spsessionid ) { global $ CFG ; if ( ! empty ( $ CFG -> session_file_save_path ) ) { $ dir = $ CFG -> session_file_save_path ; } else { $ dir = $ CFG -> dataroot . '/sessions' ; } if ( is_dir ( $ dir ) ) { if ( $ dh = opendir ( $ dir ) ) { // Read all session files. while ( ( $ file = readdir ( $ dh ) ) !== false ) { // Check if it is a file. if ( is_file ( $ dir . '/' . $ file ) ) { // Read session file data. $ data = file ( $ dir . '/' . $ file ) ; if ( isset ( $ data [ 0 ] ) ) { $ usersession = self :: unserializesession ( $ data [ 0 ] ) ; // Check if we have found session that shall be deleted. if ( isset ( $ usersession [ 'SESSION' ] ) && isset ( $ usersession [ 'SESSION' ] -> shibboleth_session_id ) ) { // If there is a match, delete file. if ( $ usersession [ 'SESSION' ] -> shibboleth_session_id == $ spsessionid ) { // Delete session file. if ( ! unlink ( $ dir . '/' . $ file ) ) { return new SoapFault ( 'LogoutError' , 'Could not delete Moodle session file.' ) ; } } } } } } closedir ( $ dh ) ; } } }
docstring: Delete session of user using file sessions.
  
  @param string $spsessionid SP-provided Shibboleth Session ID
  @return \SoapFault or void if everything was fine
docstring_tokens: Delete session of user using file sessions .