original_string: protected function store_token($token) {
          if (!$this->system) {
              parent::store_token($token);
              return;
          }
  
          $this->accesstoken = $token;
  
          // Create or update a DB record with the new token.
          $persistedtoken = access_token::get_record(['issuerid' => $this->issuer->get('id')]);
          if ($token !== null) {
              if (!$persistedtoken) {
                  $persistedtoken = new access_token();
                  $persistedtoken->set('issuerid', $this->issuer->get('id'));
              }
              // Update values from $token. Don't use from_record because that would skip validation.
              $persistedtoken->set('token', $token->token);
              if (isset($token->expires)) {
                  $persistedtoken->set('expires', $token->expires);
              } else {
                  // Assume an arbitrary time span of 1 week for access tokens without expiration.
                  // The "refresh_system_tokens_task" is run hourly (by default), so the token probably won't last that long.
                  $persistedtoken->set('expires', time() + WEEKSECS);
              }
              $persistedtoken->set('scope', $token->scope);
              $persistedtoken->save();
          } else {
              if ($persistedtoken) {
                  $persistedtoken->delete();
              }
          }
      }
code: protected function store_token($token) {
          if (!$this->system) {
              parent::store_token($token);
              return;
          }
  
          $this->accesstoken = $token;
  
          // Create or update a DB record with the new token.
          $persistedtoken = access_token::get_record(['issuerid' => $this->issuer->get('id')]);
          if ($token !== null) {
              if (!$persistedtoken) {
                  $persistedtoken = new access_token();
                  $persistedtoken->set('issuerid', $this->issuer->get('id'));
              }
              // Update values from $token. Don't use from_record because that would skip validation.
              $persistedtoken->set('token', $token->token);
              if (isset($token->expires)) {
                  $persistedtoken->set('expires', $token->expires);
              } else {
                  // Assume an arbitrary time span of 1 week for access tokens without expiration.
                  // The "refresh_system_tokens_task" is run hourly (by default), so the token probably won't last that long.
                  $persistedtoken->set('expires', time() + WEEKSECS);
              }
              $persistedtoken->set('scope', $token->scope);
              $persistedtoken->save();
          } else {
              if ($persistedtoken) {
                  $persistedtoken->delete();
              }
          }
      }
code_tokens: protected function store_token ( $ token ) { if ( ! $ this -> system ) { parent :: store_token ( $ token ) ; return ; } $ this -> accesstoken = $ token ; // Create or update a DB record with the new token. $ persistedtoken = access_token :: get_record ( [ 'issuerid' => $ this -> issuer -> get ( 'id' ) ] ) ; if ( $ token !== null ) { if ( ! $ persistedtoken ) { $ persistedtoken = new access_token ( ) ; $ persistedtoken -> set ( 'issuerid' , $ this -> issuer -> get ( 'id' ) ) ; } // Update values from $token. Don't use from_record because that would skip validation. $ persistedtoken -> set ( 'token' , $ token -> token ) ; if ( isset ( $ token -> expires ) ) { $ persistedtoken -> set ( 'expires' , $ token -> expires ) ; } else { // Assume an arbitrary time span of 1 week for access tokens without expiration. // The "refresh_system_tokens_task" is run hourly (by default), so the token probably won't last that long. $ persistedtoken -> set ( 'expires' , time ( ) + WEEKSECS ) ; } $ persistedtoken -> set ( 'scope' , $ token -> scope ) ; $ persistedtoken -> save ( ) ; } else { if ( $ persistedtoken ) { $ persistedtoken -> delete ( ) ; } } }
docstring: Store a token between requests. Uses session named by get_tokenname for user account tokens
  and a database record for system account tokens.
  
  @param stdClass|null $token token object to store or null to clear
docstring_tokens: Store a token between requests . Uses session named by get_tokenname for user account tokens and a database record for system account tokens .