original_string: public function reload_if_dirty() {
          global $ACCESSLIB_PRIVATE, $USER;
  
          // Load dirty contexts list if needed
          if (CLI_SCRIPT) {
              if (!isset($ACCESSLIB_PRIVATE->dirtycontexts)) {
                  // we do not load dirty flags in CLI and cron
                  $ACCESSLIB_PRIVATE->dirtycontexts = array();
              }
          } else {
              if (!isset($USER->access['time'])) {
                  // Nothing has been loaded yet, so we do not need to check dirty flags now.
                  return;
              }
  
              // From skodak: No idea why -2 is there, server cluster time difference maybe...
              $changedsince = $USER->access['time'] - 2;
  
              if (!isset($ACCESSLIB_PRIVATE->dirtycontexts)) {
                  $ACCESSLIB_PRIVATE->dirtycontexts = get_cache_flags('accesslib/dirtycontexts', $changedsince);
              }
  
              if (!isset($ACCESSLIB_PRIVATE->dirtyusers[$USER->id])) {
                  $ACCESSLIB_PRIVATE->dirtyusers[$USER->id] = get_cache_flag('accesslib/dirtyusers', $USER->id, $changedsince);
              }
          }
  
          $dirty = false;
  
          if (!empty($ACCESSLIB_PRIVATE->dirtyusers[$USER->id])) {
              $dirty = true;
          } else if (!empty($ACCESSLIB_PRIVATE->dirtycontexts)) {
              $paths = $this->get_parent_context_paths(true);
  
              foreach ($paths as $path) {
                  if (isset($ACCESSLIB_PRIVATE->dirtycontexts[$path])) {
                      $dirty = true;
                      break;
                  }
              }
          }
  
          if ($dirty) {
              // Reload all capabilities of USER and others - preserving loginas, roleswitches, etc.
              // Then cleanup any marks of dirtyness... at least from our short term memory!
              reload_all_capabilities();
          }
      }
code: public function reload_if_dirty() {
          global $ACCESSLIB_PRIVATE, $USER;
  
          // Load dirty contexts list if needed
          if (CLI_SCRIPT) {
              if (!isset($ACCESSLIB_PRIVATE->dirtycontexts)) {
                  // we do not load dirty flags in CLI and cron
                  $ACCESSLIB_PRIVATE->dirtycontexts = array();
              }
          } else {
              if (!isset($USER->access['time'])) {
                  // Nothing has been loaded yet, so we do not need to check dirty flags now.
                  return;
              }
  
              // From skodak: No idea why -2 is there, server cluster time difference maybe...
              $changedsince = $USER->access['time'] - 2;
  
              if (!isset($ACCESSLIB_PRIVATE->dirtycontexts)) {
                  $ACCESSLIB_PRIVATE->dirtycontexts = get_cache_flags('accesslib/dirtycontexts', $changedsince);
              }
  
              if (!isset($ACCESSLIB_PRIVATE->dirtyusers[$USER->id])) {
                  $ACCESSLIB_PRIVATE->dirtyusers[$USER->id] = get_cache_flag('accesslib/dirtyusers', $USER->id, $changedsince);
              }
          }
  
          $dirty = false;
  
          if (!empty($ACCESSLIB_PRIVATE->dirtyusers[$USER->id])) {
              $dirty = true;
          } else if (!empty($ACCESSLIB_PRIVATE->dirtycontexts)) {
              $paths = $this->get_parent_context_paths(true);
  
              foreach ($paths as $path) {
                  if (isset($ACCESSLIB_PRIVATE->dirtycontexts[$path])) {
                      $dirty = true;
                      break;
                  }
              }
          }
  
          if ($dirty) {
              // Reload all capabilities of USER and others - preserving loginas, roleswitches, etc.
              // Then cleanup any marks of dirtyness... at least from our short term memory!
              reload_all_capabilities();
          }
      }
code_tokens: public function reload_if_dirty ( ) { global $ ACCESSLIB_PRIVATE , $ USER ; // Load dirty contexts list if needed if ( CLI_SCRIPT ) { if ( ! isset ( $ ACCESSLIB_PRIVATE -> dirtycontexts ) ) { // we do not load dirty flags in CLI and cron $ ACCESSLIB_PRIVATE -> dirtycontexts = array ( ) ; } } else { if ( ! isset ( $ USER -> access [ 'time' ] ) ) { // Nothing has been loaded yet, so we do not need to check dirty flags now. return ; } // From skodak: No idea why -2 is there, server cluster time difference maybe... $ changedsince = $ USER -> access [ 'time' ] - 2 ; if ( ! isset ( $ ACCESSLIB_PRIVATE -> dirtycontexts ) ) { $ ACCESSLIB_PRIVATE -> dirtycontexts = get_cache_flags ( 'accesslib/dirtycontexts' , $ changedsince ) ; } if ( ! isset ( $ ACCESSLIB_PRIVATE -> dirtyusers [ $ USER -> id ] ) ) { $ ACCESSLIB_PRIVATE -> dirtyusers [ $ USER -> id ] = get_cache_flag ( 'accesslib/dirtyusers' , $ USER -> id , $ changedsince ) ; } } $ dirty = false ; if ( ! empty ( $ ACCESSLIB_PRIVATE -> dirtyusers [ $ USER -> id ] ) ) { $ dirty = true ; } else if ( ! empty ( $ ACCESSLIB_PRIVATE -> dirtycontexts ) ) { $ paths = $ this -> get_parent_context_paths ( true ) ; foreach ( $ paths as $ path ) { if ( isset ( $ ACCESSLIB_PRIVATE -> dirtycontexts [ $ path ] ) ) { $ dirty = true ; break ; } } } if ( $ dirty ) { // Reload all capabilities of USER and others - preserving loginas, roleswitches, etc. // Then cleanup any marks of dirtyness... at least from our short term memory! reload_all_capabilities ( ) ; } }
docstring: Reset all cached permissions and definitions if the necessary.
  @return void
docstring_tokens: Reset all cached permissions and definitions if the necessary .