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 */
|