[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/include/Zend/Oauth/ -> Token.php (source)

   1  <?php
   2  /**
   3   * Zend Framework
   4   *
   5   * LICENSE
   6   *
   7   * This source file is subject to the new BSD license that is bundled
   8   * with this package in the file LICENSE.txt.
   9   * It is also available through the world-wide-web at this URL:
  10   * http://framework.zend.com/license/new-bsd
  11   * If you did not receive a copy of the license and are unable to
  12   * obtain it through the world-wide-web, please send an email
  13   * to [email protected] so we can send you a copy immediately.
  14   *
  15   * @category   Zend
  16   * @package    Zend_Oauth
  17   * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  18   * @license    http://framework.zend.com/license/new-bsd     New BSD License
  19   * @version    $Id: Token.php 24593 2012-01-05 20:35:02Z matthew $
  20   */
  21  
  22  /** Zend_Oauth_Http_Utility */
  23  require_once  'Zend/Oauth/Http/Utility.php';
  24  
  25  /**
  26   * @category   Zend
  27   * @package    Zend_Oauth
  28   * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  29   * @license    http://framework.zend.com/license/new-bsd     New BSD License
  30   */
  31  abstract class Zend_Oauth_Token
  32  {
  33      /**@+
  34       * Token constants
  35       */
  36      const TOKEN_PARAM_KEY                = 'oauth_token';
  37      const TOKEN_SECRET_PARAM_KEY         = 'oauth_token_secret';
  38      const TOKEN_PARAM_CALLBACK_CONFIRMED = 'oauth_callback_confirmed';
  39      /**@-*/
  40  
  41      /**
  42       * Token parameters
  43       *
  44       * @var array
  45       */
  46      protected $_params = array();
  47  
  48      /**
  49       * OAuth response object
  50       *
  51       * @var Zend_Http_Response
  52       */
  53      protected $_response = null;
  54  
  55      /**
  56       * @var Zend_Oauth_Http_Utility
  57       */
  58      protected $_httpUtility = null;
  59  
  60      /**
  61       * Constructor; basic setup for any Token subclass.
  62       *
  63       * @param  null|Zend_Http_Response $response
  64       * @param  null|Zend_Oauth_Http_Utility $utility
  65       * @return void
  66       */
  67      public function __construct(
  68          Zend_Http_Response $response = null,
  69          Zend_Oauth_Http_Utility $utility = null
  70      ) {
  71          if ($response !== null) {
  72              $this->_response = $response;
  73              $params = $this->_parseParameters($response);
  74              if (count($params) > 0) {
  75                  $this->setParams($params);
  76              }
  77          }
  78          if ($utility !== null) {
  79              $this->_httpUtility = $utility;
  80          } else {
  81              $this->_httpUtility = new Zend_Oauth_Http_Utility;
  82          }
  83      }
  84  
  85      /**
  86       * Attempts to validate the Token parsed from the HTTP response - really
  87       * it's just very basic existence checks which are minimal.
  88       *
  89       * @return bool
  90       */
  91      public function isValid()
  92      {
  93          if (isset($this->_params[self::TOKEN_PARAM_KEY])
  94              && !empty($this->_params[self::TOKEN_PARAM_KEY])
  95              && isset($this->_params[self::TOKEN_SECRET_PARAM_KEY])
  96          ) {
  97              return true;
  98          }
  99          return false;
 100      }
 101  
 102      /**
 103       * Return the HTTP response object used to initialise this instance.
 104       *
 105       * @return Zend_Http_Response
 106       */
 107      public function getResponse()
 108      {
 109          return $this->_response;
 110      }
 111  
 112      /**
 113       * Sets the value for the this Token's secret which may be used when signing
 114       * requests with this Token.
 115       *
 116       * @param  string $secret
 117       * @return Zend_Oauth_Token
 118       */
 119      public function setTokenSecret($secret)
 120      {
 121          $this->setParam(self::TOKEN_SECRET_PARAM_KEY, $secret);
 122          return $this;
 123      }
 124  
 125      /**
 126       * Retrieve this Token's secret which may be used when signing
 127       * requests with this Token.
 128       *
 129       * @return string
 130       */
 131      public function getTokenSecret()
 132      {
 133          return $this->getParam(self::TOKEN_SECRET_PARAM_KEY);
 134      }
 135  
 136      /**
 137       * Sets the value for a parameter (e.g. token secret or other) and run
 138       * a simple filter to remove any trailing newlines.
 139       *
 140       * @param  string $key
 141       * @param  string $value
 142       * @return Zend_Oauth_Token
 143       */
 144      public function setParam($key, $value)
 145      {
 146          $this->_params[$key] = trim($value, "\n");
 147          return $this;
 148      }
 149  
 150      /**
 151       * Sets the value for some parameters (e.g. token secret or other) and run
 152       * a simple filter to remove any trailing newlines.
 153       *
 154       * @param  array $params
 155       * @return Zend_Oauth_Token
 156       */
 157      public function setParams(array $params)
 158      {
 159          foreach ($params as $key=>$value) {
 160              $this->setParam($key, $value);
 161          }
 162          return $this;
 163      }
 164  
 165      /**
 166       * Get the value for a parameter (e.g. token secret or other).
 167       *
 168       * @param  string $key
 169       * @return mixed
 170       */
 171      public function getParam($key)
 172      {
 173          if (isset($this->_params[$key])) {
 174              return $this->_params[$key];
 175          }
 176          return null;
 177      }
 178  
 179      /**
 180       * Sets the value for a Token.
 181       *
 182       * @param  string $token
 183       * @return Zend_Oauth_Token
 184       */
 185      public function setToken($token)
 186      {
 187          $this->setParam(self::TOKEN_PARAM_KEY, $token);
 188          return $this;
 189      }
 190  
 191      /**
 192       * Gets the value for a Token.
 193       *
 194       * @return string
 195       */
 196      public function getToken()
 197      {
 198          return $this->getParam(self::TOKEN_PARAM_KEY);
 199      }
 200  
 201      /**
 202       * Generic accessor to enable access as public properties.
 203       *
 204       * @return string
 205       */
 206      public function __get($key)
 207      {
 208          return $this->getParam($key);
 209      }
 210  
 211      /**
 212       * Generic mutator to enable access as public properties.
 213       *
 214       * @param  string $key
 215       * @param  string $value
 216       * @return void
 217       */
 218      public function __set($key, $value)
 219      {
 220          $this->setParam($key, $value);
 221      }
 222  
 223      /**
 224       * Convert Token to a string, specifically a raw encoded query string.
 225       *
 226       * @return string
 227       */
 228      public function toString()
 229      {
 230          return $this->_httpUtility->toEncodedQueryString($this->_params);
 231      }
 232  
 233      /**
 234       * Convert Token to a string, specifically a raw encoded query string.
 235       * Aliases to self::toString()
 236       *
 237       * @return string
 238       */
 239      public function __toString()
 240      {
 241          return $this->toString();
 242      }
 243  
 244      /**
 245       * Parse a HTTP response body and collect returned parameters
 246       * as raw url decoded key-value pairs in an associative array.
 247       *
 248       * @param  Zend_Http_Response $response
 249       * @return array
 250       */
 251      protected function _parseParameters(Zend_Http_Response $response)
 252      {
 253          $params = array();
 254          $body   = $response->getBody();
 255          if (empty($body)) {
 256              return;
 257          }
 258  
 259          // validate body based on acceptable characters...todo
 260          $parts = explode('&', $body);
 261          foreach ($parts as $kvpair) {
 262              $pair = explode('=', $kvpair);
 263              $params[rawurldecode($pair[0])] = rawurldecode($pair[1]);
 264          }
 265          return $params;
 266      }
 267  
 268      /**
 269       * Limit serialisation stored data to the parameters
 270       */
 271      public function __sleep()
 272      {
 273          return array('_params');
 274      }
 275  
 276      /**
 277       * After serialisation, re-instantiate a HTTP utility class for use
 278       */
 279      public function __wakeup()
 280      {
 281          if ($this->_httpUtility === null) {
 282              $this->_httpUtility = new Zend_Oauth_Http_Utility;
 283          }
 284      }
 285  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1