Add OpenID auth for editing pages
[busui.git] / lib / openid-php / Auth / OpenID / Interface.php
blob:a/lib/openid-php/Auth/OpenID/Interface.php -> blob:b/lib/openid-php/Auth/OpenID/Interface.php
  <?php
   
  /**
  * This file specifies the interface for PHP OpenID store implementations.
  *
  * PHP versions 4 and 5
  *
  * LICENSE: See the COPYING file included in this distribution.
  *
  * @package OpenID
  * @author JanRain, Inc. <openid@janrain.com>
  * @copyright 2005-2008 Janrain, Inc.
  * @license http://www.apache.org/licenses/LICENSE-2.0 Apache
  */
   
  /**
  * This is the interface for the store objects the OpenID library
  * uses. It is a single class that provides all of the persistence
  * mechanisms that the OpenID library needs, for both servers and
  * consumers. If you want to create an SQL-driven store, please see
  * then {@link Auth_OpenID_SQLStore} class.
  *
  * Change: Version 2.0 removed the storeNonce, getAuthKey, and isDumb
  * methods, and changed the behavior of the useNonce method to support
  * one-way nonces.
  *
  * @package OpenID
  * @author JanRain, Inc. <openid@janrain.com>
  */
  class Auth_OpenID_OpenIDStore {
  /**
  * This method puts an Association object into storage,
  * retrievable by server URL and handle.
  *
  * @param string $server_url The URL of the identity server that
  * this association is with. Because of the way the server portion
  * of the library uses this interface, don't assume there are any
  * limitations on the character set of the input string. In
  * particular, expect to see unescaped non-url-safe characters in
  * the server_url field.
  *
  * @param Association $association The Association to store.
  */
  function storeAssociation($server_url, $association)
  {
  trigger_error("Auth_OpenID_OpenIDStore::storeAssociation ".
  "not implemented", E_USER_ERROR);
  }
   
  /*
  * Remove expired nonces from the store.
  *
  * Discards any nonce from storage that is old enough that its
  * timestamp would not pass useNonce().
  *
  * This method is not called in the normal operation of the
  * library. It provides a way for store admins to keep their
  * storage from filling up with expired data.
  *
  * @return the number of nonces expired
  */
  function cleanupNonces()
  {
  trigger_error("Auth_OpenID_OpenIDStore::cleanupNonces ".
  "not implemented", E_USER_ERROR);
  }
   
  /*
  * Remove expired associations from the store.
  *
  * This method is not called in the normal operation of the
  * library. It provides a way for store admins to keep their
  * storage from filling up with expired data.
  *
  * @return the number of associations expired.
  */
  function cleanupAssociations()
  {
  trigger_error("Auth_OpenID_OpenIDStore::cleanupAssociations ".
  "not implemented", E_USER_ERROR);
  }
   
  /*
  * Shortcut for cleanupNonces(), cleanupAssociations().
  *
  * This method is not called in the normal operation of the
  * library. It provides a way for store admins to keep their
  * storage from filling up with expired data.
  */
  function cleanup()
  {
  return array($this->cleanupNonces(),
  $this->cleanupAssociations());
  }
   
  /**
  * Report whether this storage supports cleanup
  */
  function supportsCleanup()
  {
  return true;
  }
   
  /**
  * This method returns an Association object from storage that
  * matches the server URL and, if specified, handle. It returns
  * null if no such association is found or if the matching
  * association is expired.
  *
  * If no handle is specified, the store may return any association
  * which matches the server URL. If multiple associations are
  * valid, the recommended return value for this method is the one
  * most recently issued.
  *
  * This method is allowed (and encouraged) to garbage collect
  * expired associations when found. This method must not return
  * expired associations.
  *
  * @param string $server_url The URL of the identity server to get
  * the association for. Because of the way the server portion of
  * the library uses this interface, don't assume there are any
  * limitations on the character set of the input string. In
  * particular, expect to see unescaped non-url-safe characters in
  * the server_url field.
  *
  * @param mixed $handle This optional parameter is the handle of
  * the specific association to get. If no specific handle is
  * provided, any valid association matching the server URL is
  * returned.
  *
  * @return Association The Association for the given identity
  * server.
  */
  function getAssociation($server_url, $handle = null)
  {
  trigger_error("Auth_OpenID_OpenIDStore::getAssociation ".
  "not implemented", E_USER_ERROR);
  }
   
  /**
  * This method removes the matching association if it's found, and
  * returns whether the association was removed or not.
  *
  * @param string $server_url The URL of the identity server the
  * association to remove belongs to. Because of the way the server
  * portion of the library uses this interface, don't assume there
  * are any limitations on the character set of the input
  * string. In particular, expect to see unescaped non-url-safe
  * characters in the server_url field.
  *
  * @param string $handle This is the handle of the association to
  * remove. If there isn't an association found that matches both
  * the given URL and handle, then there was no matching handle
  * found.
  *
  * @return mixed Returns whether or not the given association existed.
  */
  function removeAssociation($server_url, $handle)
  {
  trigger_error("Auth_OpenID_OpenIDStore::removeAssociation ".
  "not implemented", E_USER_ERROR);
  }
   
  /**
  * Called when using a nonce.
  *
  * This method should return C{True} if the nonce has not been
  * used before, and store it for a while to make sure nobody
  * tries to use the same value again. If the nonce has already
  * been used, return C{False}.
  *
  * Change: In earlier versions, round-trip nonces were used and a
  * nonce was only valid if it had been previously stored with
  * storeNonce. Version 2.0 uses one-way nonces, requiring a
  * different implementation here that does not depend on a
  * storeNonce call. (storeNonce is no longer part of the
  * interface.
  *
  * @param string $nonce The nonce to use.
  *
  * @return bool Whether or not the nonce was valid.
  */
  function useNonce($server_url, $timestamp, $salt)
  {
  trigger_error("Auth_OpenID_OpenIDStore::useNonce ".
  "not implemented", E_USER_ERROR);
  }
   
  /**
  * Removes all entries from the store; implementation is optional.
  */
  function reset()
  {
  }
   
  }