diff options
Diffstat (limited to 'Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Config.php')
-rw-r--r-- | Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Config.php | 414 |
1 files changed, 0 insertions, 414 deletions
diff --git a/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Config.php b/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Config.php deleted file mode 100644 index 0ddcc13..0000000 --- a/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Config.php +++ /dev/null @@ -1,414 +0,0 @@ -<?php -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * A class to contain the library configuration for the Google API client. - */ -class Postman_Google_Config -{ - const GZIP_DISABLED = true; - const GZIP_ENABLED = false; - const GZIP_UPLOADS_ENABLED = true; - const GZIP_UPLOADS_DISABLED = false; - const USE_AUTO_IO_SELECTION = "auto"; - protected $configuration; - - /** - * Create a new Postman_Google_Config. Can accept an ini file location with the - * local configuration. For example: - * application_name="My App" - * - * @param [$ini_file_location] - optional - The location of the ini file to load - */ - public function __construct($ini_file_location = null) - { - $this->configuration = array( - // The application_name is included in the User-Agent HTTP header. - 'application_name' => '', - - // Which Authentication, Storage and HTTP IO classes to use. - 'auth_class' => 'Postman_Google_Auth_OAuth2', - 'io_class' => self::USE_AUTO_IO_SELECTION, - 'cache_class' => 'Postman_Google_Cache_File', - 'logger_class' => 'Postman_Google_Logger_Null', - - // Don't change these unless you're working against a special development - // or testing environment. - 'base_path' => 'https://www.googleapis.com', - - // Definition of class specific values, like file paths and so on. - 'classes' => array( - 'Postman_Google_IO_Abstract' => array( - 'request_timeout_seconds' => 100, - ), - 'Postman_Google_Logger_Abstract' => array( - 'level' => 'debug', - 'log_format' => "[%datetime%] %level%: %message% %context%\n", - 'date_format' => 'd/M/Y:H:i:s O', - 'allow_newlines' => true - ), - 'Postman_Google_Logger_File' => array( - 'file' => 'php://stdout', - 'mode' => 0640, - 'lock' => false, - ), - 'Postman_Google_Http_Request' => array( - // Disable the use of gzip on calls if set to true. Defaults to false. - 'disable_gzip' => self::GZIP_ENABLED, - - // We default gzip to disabled on uploads even if gzip is otherwise - // enabled, due to some issues seen with small packet sizes for uploads. - // Please test with this option before enabling gzip for uploads in - // a production environment. - 'enable_gzip_for_uploads' => self::GZIP_UPLOADS_DISABLED, - ), - // If you want to pass in OAuth 2.0 settings, they will need to be - // structured like this. - 'Postman_Google_Auth_OAuth2' => array( - // Keys for OAuth 2.0 access, see the API console at - // https://developers.google.com/console - 'client_id' => '', - 'client_secret' => '', - 'redirect_uri' => '', - - // Simple API access key, also from the API console. Ensure you get - // a Server key, and not a Browser key. - 'developer_key' => '', - - // Other parameters. - 'hd' => '', - 'prompt' => '', - 'openid.realm' => '', - 'include_granted_scopes' => '', - 'login_hint' => '', - 'request_visible_actions' => '', - 'access_type' => 'online', - 'approval_prompt' => 'auto', - 'federated_signon_certs_url' => - 'https://www.googleapis.com/oauth2/v1/certs', - ), - // Set a default directory for the file cache. - 'Postman_Google_Cache_File' => array( - 'directory' => sys_get_temp_dir() . '/Postman_Google_Client' - ) - ), - ); - if ($ini_file_location) { - $ini = parse_ini_file($ini_file_location, true); - if (is_array($ini) && count($ini)) { - $merged_configuration = $ini + $this->configuration; - if (isset($ini['classes']) && isset($this->configuration['classes'])) { - $merged_configuration['classes'] = $ini['classes'] + $this->configuration['classes']; - } - $this->configuration = $merged_configuration; - } - } - } - - /** - * Set configuration specific to a given class. - * $config->setClassConfig('Postman_Google_Cache_File', - * array('directory' => '/tmp/cache')); - * @param $class string The class name for the configuration - * @param $config string key or an array of configuration values - * @param $value string optional - if $config is a key, the value - */ - public function setClassConfig($class, $config, $value = null) - { - if (!is_array($config)) { - if (!isset($this->configuration['classes'][$class])) { - $this->configuration['classes'][$class] = array(); - } - $this->configuration['classes'][$class][$config] = $value; - } else { - $this->configuration['classes'][$class] = $config; - } - } - - public function getClassConfig($class, $key = null) - { - if (!isset($this->configuration['classes'][$class])) { - return null; - } - if ($key === null) { - return $this->configuration['classes'][$class]; - } else { - return $this->configuration['classes'][$class][$key]; - } - } - - /** - * Return the configured cache class. - * @return string - */ - public function getCacheClass() - { - return $this->configuration['cache_class']; - } - - /** - * Return the configured logger class. - * @return string - */ - public function getLoggerClass() - { - return $this->configuration['logger_class']; - } - - /** - * Return the configured Auth class. - * @return string - */ - public function getAuthClass() - { - return $this->configuration['auth_class']; - } - - /** - * Set the auth class. - * - * @param $class string the class name to set - */ - public function setAuthClass($class) - { - $prev = $this->configuration['auth_class']; - if (!isset($this->configuration['classes'][$class]) && - isset($this->configuration['classes'][$prev])) { - $this->configuration['classes'][$class] = - $this->configuration['classes'][$prev]; - } - $this->configuration['auth_class'] = $class; - } - - /** - * Set the IO class. - * - * @param $class string the class name to set - */ - public function setIoClass($class) - { - $prev = $this->configuration['io_class']; - if (!isset($this->configuration['classes'][$class]) && - isset($this->configuration['classes'][$prev])) { - $this->configuration['classes'][$class] = - $this->configuration['classes'][$prev]; - } - $this->configuration['io_class'] = $class; - } - - /** - * Set the cache class. - * - * @param $class string the class name to set - */ - public function setCacheClass($class) - { - $prev = $this->configuration['cache_class']; - if (!isset($this->configuration['classes'][$class]) && - isset($this->configuration['classes'][$prev])) { - $this->configuration['classes'][$class] = - $this->configuration['classes'][$prev]; - } - $this->configuration['cache_class'] = $class; - } - - /** - * Set the logger class. - * - * @param $class string the class name to set - */ - public function setLoggerClass($class) - { - $prev = $this->configuration['logger_class']; - if (!isset($this->configuration['classes'][$class]) && - isset($this->configuration['classes'][$prev])) { - $this->configuration['classes'][$class] = - $this->configuration['classes'][$prev]; - } - $this->configuration['logger_class'] = $class; - } - - /** - * Return the configured IO class. - * - * @return string - */ - public function getIoClass() - { - return $this->configuration['io_class']; - } - - /** - * Set the application name, this is included in the User-Agent HTTP header. - * @param string $name - */ - public function setApplicationName($name) - { - $this->configuration['application_name'] = $name; - } - - /** - * @return string the name of the application - */ - public function getApplicationName() - { - return $this->configuration['application_name']; - } - - /** - * Set the client ID for the auth class. - * @param $clientId string - the API console client ID - */ - public function setClientId($clientId) - { - $this->setAuthConfig('client_id', $clientId); - } - - /** - * Set the client secret for the auth class. - * @param $secret string - the API console client secret - */ - public function setClientSecret($secret) - { - $this->setAuthConfig('client_secret', $secret); - } - - /** - * Set the redirect uri for the auth class. Note that if using the - * Javascript based sign in flow, this should be the string 'postmessage'. - * - * @param $uri string - the URI that users should be redirected to - */ - public function setRedirectUri($uri) - { - $this->setAuthConfig('redirect_uri', $uri); - } - - /** - * Set the app activities for the auth class. - * @param $rva string a space separated list of app activity types - */ - public function setRequestVisibleActions($rva) - { - $this->setAuthConfig('request_visible_actions', $rva); - } - - /** - * Set the the access type requested (offline or online.) - * @param $access string - the access type - */ - public function setAccessType($access) - { - $this->setAuthConfig('access_type', $access); - } - - /** - * Set when to show the approval prompt (auto or force) - * @param $approval string - the approval request - */ - public function setApprovalPrompt($approval) - { - $this->setAuthConfig('approval_prompt', $approval); - } - - /** - * Set the login hint (email address or sub identifier) - * @param $hint string - */ - public function setLoginHint($hint) - { - $this->setAuthConfig('login_hint', $hint); - } - - /** - * Set the developer key for the auth class. Note that this is separate value - * from the client ID - if it looks like a URL, its a client ID! - * @param $key string - the API console developer key - */ - public function setDeveloperKey($key) - { - $this->setAuthConfig('developer_key', $key); - } - - /** - * Set the hd (hosted domain) parameter streamlines the login process for - * Google Apps hosted accounts. By including the domain of the user, you - * restrict sign-in to accounts at that domain. - * @param $hd string - the domain to use. - */ - public function setHostedDomain($hd) - { - $this->setAuthConfig('hd', $hd); - } - - /** - * Set the prompt hint. Valid values are none, consent and select_account. - * If no value is specified and the user has not previously authorized - * access, then the user is shown a consent screen. - * @param $prompt string - */ - public function setPrompt($prompt) - { - $this->setAuthConfig('prompt', $prompt); - } - - /** - * openid.realm is a parameter from the OpenID 2.0 protocol, not from OAuth - * 2.0. It is used in OpenID 2.0 requests to signify the URL-space for which - * an authentication request is valid. - * @param $realm string - the URL-space to use. - */ - public function setOpenidRealm($realm) - { - $this->setAuthConfig('openid.realm', $realm); - } - - /** - * If this is provided with the value true, and the authorization request is - * granted, the authorization will include any previous authorizations - * granted to this user/application combination for other scopes. - * @param $include boolean - the URL-space to use. - */ - public function setIncludeGrantedScopes($include) - { - $this->setAuthConfig( - 'include_granted_scopes', - $include ? "true" : "false" - ); - } - - /** - * @return string the base URL to use for API calls - */ - public function getBasePath() - { - return $this->configuration['base_path']; - } - - /** - * Set the auth configuration for the current auth class. - * @param $key - the key to set - * @param $value - the parameter value - */ - private function setAuthConfig($key, $value) - { - if (!isset($this->configuration['classes'][$this->getAuthClass()])) { - $this->configuration['classes'][$this->getAuthClass()] = array(); - } - $this->configuration['classes'][$this->getAuthClass()][$key] = $value; - } -} |