annotate modules/openid/openid.api.php @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 * Hooks provided by the OpenID module.
danielebarchiesi@0 6 */
danielebarchiesi@0 7
danielebarchiesi@0 8 /**
danielebarchiesi@0 9 * @addtogroup hooks
danielebarchiesi@0 10 * @{
danielebarchiesi@0 11 */
danielebarchiesi@0 12
danielebarchiesi@0 13 /**
danielebarchiesi@0 14 * Allow modules to modify the OpenID request parameters.
danielebarchiesi@0 15 *
danielebarchiesi@0 16 * @param $op
danielebarchiesi@0 17 * The operation to be performed.
danielebarchiesi@0 18 * Possible values:
danielebarchiesi@0 19 * - request: Modify parameters before they are sent to the OpenID provider.
danielebarchiesi@0 20 * @param $request
danielebarchiesi@0 21 * An associative array of parameter defaults to which to modify or append.
danielebarchiesi@0 22 * @return
danielebarchiesi@0 23 * An associative array of parameters to be merged with the default list.
danielebarchiesi@0 24 *
danielebarchiesi@0 25 */
danielebarchiesi@0 26 function hook_openid($op, $request) {
danielebarchiesi@0 27 if ($op == 'request') {
danielebarchiesi@0 28 $request['openid.identity'] = 'http://myname.myopenid.com/';
danielebarchiesi@0 29 }
danielebarchiesi@0 30 return $request;
danielebarchiesi@0 31 }
danielebarchiesi@0 32
danielebarchiesi@0 33 /**
danielebarchiesi@0 34 * Allow modules to act upon a successful OpenID login.
danielebarchiesi@0 35 *
danielebarchiesi@0 36 * @param $response
danielebarchiesi@0 37 * Response values from the OpenID Provider.
danielebarchiesi@0 38 * @param $account
danielebarchiesi@0 39 * The Drupal user account that logged in
danielebarchiesi@0 40 *
danielebarchiesi@0 41 */
danielebarchiesi@0 42 function hook_openid_response($response, $account) {
danielebarchiesi@0 43 if (isset($response['openid.ns.ax'])) {
danielebarchiesi@0 44 _mymodule_store_ax_fields($response, $account);
danielebarchiesi@0 45 }
danielebarchiesi@0 46 }
danielebarchiesi@0 47
danielebarchiesi@0 48 /**
danielebarchiesi@0 49 * Allow modules to declare OpenID discovery methods.
danielebarchiesi@0 50 *
danielebarchiesi@0 51 * The discovery function callbacks will be called in turn with an unique
danielebarchiesi@0 52 * parameter, the claimed identifier. They have to return an associative array
danielebarchiesi@0 53 * with array of services and claimed identifier in the same form as returned by
danielebarchiesi@0 54 * openid_discover(). The resulting array must contain following keys:
danielebarchiesi@0 55 * - 'services' (required) an array of discovered services (including OpenID
danielebarchiesi@0 56 * version, endpoint URI, etc).
danielebarchiesi@0 57 * - 'claimed_id' (optional) new claimed identifer, found by following HTTP
danielebarchiesi@0 58 * redirects during the services discovery.
danielebarchiesi@0 59 *
danielebarchiesi@0 60 * The first discovery method that succeed (return at least one services) will
danielebarchiesi@0 61 * stop the discovery process.
danielebarchiesi@0 62 *
danielebarchiesi@0 63 * @return
danielebarchiesi@0 64 * An associative array which keys are the name of the discovery methods and
danielebarchiesi@0 65 * values are function callbacks.
danielebarchiesi@0 66 *
danielebarchiesi@0 67 * @see hook_openid_discovery_method_info_alter()
danielebarchiesi@0 68 */
danielebarchiesi@0 69 function hook_openid_discovery_method_info() {
danielebarchiesi@0 70 return array(
danielebarchiesi@0 71 'new_discovery_idea' => '_my_discovery_method',
danielebarchiesi@0 72 );
danielebarchiesi@0 73 }
danielebarchiesi@0 74
danielebarchiesi@0 75 /**
danielebarchiesi@0 76 * Allow modules to alter discovery methods.
danielebarchiesi@0 77 */
danielebarchiesi@0 78 function hook_openid_discovery_method_info_alter(&$methods) {
danielebarchiesi@0 79 // Remove XRI discovery scheme.
danielebarchiesi@0 80 unset($methods['xri']);
danielebarchiesi@0 81 }
danielebarchiesi@0 82
danielebarchiesi@0 83 /**
danielebarchiesi@0 84 * Allow modules to declare OpenID normalization methods.
danielebarchiesi@0 85 *
danielebarchiesi@0 86 * The discovery function callbacks will be called in turn with an unique
danielebarchiesi@0 87 * parameter, the identifier to normalize. They have to return a normalized
danielebarchiesi@0 88 * identifier, or NULL if the identifier is not in a form they can handle.
danielebarchiesi@0 89 *
danielebarchiesi@0 90 * The first normalization method that succeed (return a value that is not NULL)
danielebarchiesi@0 91 * will stop the normalization process.
danielebarchiesi@0 92 *
danielebarchiesi@0 93 * @return
danielebarchiesi@0 94 * An array with a set of function callbacks, that will be called in turn
danielebarchiesi@0 95 * when normalizing an OpenID identifier. The normalization functions have
danielebarchiesi@0 96 * to return a normalized identifier, or NULL if the identifier is not in
danielebarchiesi@0 97 * a form they can handle.
danielebarchiesi@0 98 * @see hook_openid_normalization_method_info_alter()
danielebarchiesi@0 99 */
danielebarchiesi@0 100 function hook_openid_normalization_method_info() {
danielebarchiesi@0 101 return array(
danielebarchiesi@0 102 'new_normalization_idea' => '_my_normalization_method',
danielebarchiesi@0 103 );
danielebarchiesi@0 104 }
danielebarchiesi@0 105
danielebarchiesi@0 106 /**
danielebarchiesi@0 107 * Allow modules to alter normalization methods.
danielebarchiesi@0 108 */
danielebarchiesi@0 109 function hook_openid_normalization_method_info_alter(&$methods) {
danielebarchiesi@0 110 // Remove Google IDP normalization.
danielebarchiesi@0 111 unset($methods['google_idp']);
danielebarchiesi@0 112 }
danielebarchiesi@0 113
danielebarchiesi@0 114 /**
danielebarchiesi@0 115 * @} End of "addtogroup hooks".
danielebarchiesi@0 116 */