/[drupal]/contributions/modules/openid_provider/openid_provider.pages.inc
ViewVC logotype

Contents of /contributions/modules/openid_provider/openid_provider.pages.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download) (as text)
Sun Apr 13 11:53:04 2008 UTC (19 months, 1 week ago) by walkah
Branch: MAIN
CVS Tags: HEAD
Branch point for: DRUPAL-6--1
File MIME type: text/x-php
Initial commit of OpenID Provider module - for openid server support
1 <?php
2 // $Id$
3
4 /**
5 * @file
6 * Page callbacks for OpenID Provider.
7 */
8
9 /**
10 * Primary endpoint callback - serves op_endpoint.
11 *
12 * @param array $request (Optional) request parameters.
13 */
14 function openid_provider_endpoint($request = array()) {
15 module_load_include('inc', 'openid');
16 module_load_include('inc', 'openid_provider');
17
18 if (count($request) == 0) {
19 $request = _openid_response();
20 }
21
22 if (isset($request['openid.mode'])) {
23 switch ($request['openid.mode']) {
24 case 'associate':
25 openid_provider_association_response($request);
26 return;
27 case 'checkid_immediate':
28 case 'checkid_setup':
29 return openid_provider_authentication_response($request);
30 case 'check_authentication':
31 openid_provider_verification_response($request);
32 break;
33 }
34 }
35 }
36
37 /**
38 * Menu callback to continue authentication process after user login. This
39 * callback is encountered when a user tries to login to an RP but does not yet
40 * have a valid local session
41 */
42 function openid_provider_continue() {
43 module_load_include('inc', 'openid');
44
45 if (isset($_SESSION['openid_provider']['request'])) {
46 $request = $_SESSION['openid_provider']['request'];
47 unset($_SESSION['openid_provider']['request']);
48 return openid_provider_endpoint($request);
49 }
50 else {
51 drupal_set_message(t('Session expired'));
52 drupal_goto();
53 }
54 }
55
56 /**
57 * Page callback for processing openid_provider_form.
58 */
59 function openid_provider_send() {
60 return drupal_get_form('openid_provider_form');
61 }
62
63
64 /**
65 * Page callback for OpenID Sites form where users can configure the
66 * auto_release status of RP's they have logged into.
67 *
68 * @param object $account User account object for the user.
69 */
70 function openid_provider_sites($account) {
71 return drupal_get_form('openid_provider_sites_form');
72 }
73
74 /**
75 * Form builder function for openid_provider_sites
76 */
77 function openid_provider_sites_form() {
78 global $user;
79
80 module_load_include('inc', 'openid_provider');
81
82 $rps = _openid_provider_rp_load($user->uid);
83 if (count($rps)) {
84 $form = array('#tree' => TRUE);
85 foreach ($rps as $rp) {
86 $form['rpid'][$rp->rpid] = array(
87 '#type' => 'checkbox',
88 '#title' => $rp->realm,
89 '#default_value' => $rp->auto_release,
90 '#description' => t('Last accessed @time', array('@time' => format_date($rp->last_time)))
91 );
92 }
93
94 $form['submit'] = array(
95 '#type' => 'submit',
96 '#value' => t('Save')
97 );
98 }
99 else {
100 $form['none']['#value'] = t('No sites yet');
101 }
102 return $form;
103 }
104
105 /**
106 * Form submit callback for openid_provider_sites.
107 */
108 function openid_provider_sites_form_submit(&$form, &$form_state) {
109 foreach ($form_state['values']['rpid'] as $key => $value) {
110 db_query("UPDATE {openid_provider_relying_party} SET auto_release=%d WHERE rpid=%d", $value, $key);
111 }
112 drupal_set_message(t('Settings saved.'));
113 }

  ViewVC Help
Powered by ViewVC 1.1.2