Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.

Differences Between: [Versions 401 and 402] [Versions 401 and 403]

   1  <?php
   2  /*
   3   * Copyright 2010 Google Inc.
   4   *
   5   * Licensed under the Apache License, Version 2.0 (the "License");
   6   * you may not use this file except in compliance with the License.
   7   * You may obtain a copy of the License at
   8   *
   9   *     http://www.apache.org/licenses/LICENSE-2.0
  10   *
  11   * Unless required by applicable law or agreed to in writing, software
  12   * distributed under the License is distributed on an "AS IS" BASIS,
  13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14   * See the License for the specific language governing permissions and
  15   * limitations under the License.
  16   */
  17  
  18  if (!class_exists('Google_Client')) {
  19    require_once dirname(__FILE__) . '/../autoload.php';
  20  }
  21  
  22  /**
  23   * Simple API access implementation. Can either be used to make requests
  24   * completely unauthenticated, or by using a Simple API Access developer
  25   * key.
  26   */
  27  class Google_Auth_Simple extends Google_Auth_Abstract
  28  {
  29    private $client;
  30  
  31    public function __construct(Google_Client $client, $config = null)
  32    {
  33      $this->client = $client;
  34    }
  35  
  36    /**
  37     * Perform an authenticated / signed apiHttpRequest.
  38     * This function takes the apiHttpRequest, calls apiAuth->sign on it
  39     * (which can modify the request in what ever way fits the auth mechanism)
  40     * and then calls apiCurlIO::makeRequest on the signed request
  41     *
  42     * @param Google_Http_Request $request
  43     * @return Google_Http_Request The resulting HTTP response including the
  44     * responseHttpCode, responseHeaders and responseBody.
  45     */
  46    public function authenticatedRequest(Google_Http_Request $request)
  47    {
  48      $request = $this->sign($request);
  49      return $this->io->makeRequest($request);
  50    }
  51  
  52    public function sign(Google_Http_Request $request)
  53    {
  54      $key = $this->client->getClassConfig($this, 'developer_key');
  55      if ($key) {
  56        $this->client->getLogger()->debug(
  57            'Simple API Access developer key authentication'
  58        );
  59        $request->setQueryParam('key', $key);
  60      }
  61      return $request;
  62    }
  63  }