annotate modules/openid/openid.pages.inc @ 1:c1f4ac30525a 6.0

Drupal 6.0
author Franck Deroche <webmaster@defr.org>
date Tue, 23 Dec 2008 14:28:28 +0100
parents
children fff6d4c8c043
rev   line source
webmaster@1 1 <?php
webmaster@1 2 // $Id: openid.pages.inc,v 1.5 2008/01/30 22:11:22 goba Exp $
webmaster@1 3
webmaster@1 4 /**
webmaster@1 5 * @file
webmaster@1 6 * User page callbacks for the openid module.
webmaster@1 7 */
webmaster@1 8
webmaster@1 9 /**
webmaster@1 10 * Menu callback; Process an OpenID authentication.
webmaster@1 11 */
webmaster@1 12 function openid_authentication_page() {
webmaster@1 13 $result = openid_complete();
webmaster@1 14 switch ($result['status']) {
webmaster@1 15 case 'success':
webmaster@1 16 return openid_authentication($result);
webmaster@1 17 case 'failed':
webmaster@1 18 drupal_set_message(t('OpenID login failed.'), 'error');
webmaster@1 19 break;
webmaster@1 20 case 'cancel':
webmaster@1 21 drupal_set_message(t('OpenID login cancelled.'));
webmaster@1 22 break;
webmaster@1 23 }
webmaster@1 24 drupal_goto();
webmaster@1 25 }
webmaster@1 26
webmaster@1 27 /**
webmaster@1 28 * Menu callback; Manage OpenID identities for the specified user.
webmaster@1 29 */
webmaster@1 30 function openid_user_identities($account) {
webmaster@1 31 drupal_set_title(check_plain($account->name));
webmaster@1 32 drupal_add_css(drupal_get_path('module', 'openid') .'/openid.css', 'module');
webmaster@1 33
webmaster@1 34 // Check to see if we got a response
webmaster@1 35 $result = openid_complete();
webmaster@1 36 if ($result['status'] == 'success') {
webmaster@1 37 $identity = $result['openid.claimed_id'];
webmaster@1 38 db_query("INSERT INTO {authmap} (uid, authname, module) VALUES (%d, '%s','openid')", $account->uid, $identity);
webmaster@1 39 drupal_set_message(t('Successfully added %identity', array('%identity' => $identity)));
webmaster@1 40 }
webmaster@1 41
webmaster@1 42 $header = array(t('OpenID'), t('Operations'));
webmaster@1 43 $rows = array();
webmaster@1 44
webmaster@1 45 $result = db_query("SELECT * FROM {authmap} WHERE module='openid' AND uid=%d", $account->uid);
webmaster@1 46 while ($identity = db_fetch_object($result)) {
webmaster@1 47 $rows[] = array($identity->authname, l(t('Delete'), 'user/'. $account->uid .'/openid/delete/'. $identity->aid));
webmaster@1 48 }
webmaster@1 49
webmaster@1 50 $output = theme('table', $header, $rows);
webmaster@1 51 $output .= drupal_get_form('openid_user_add');
webmaster@1 52 return $output;
webmaster@1 53 }
webmaster@1 54
webmaster@1 55 /**
webmaster@1 56 * Form builder; Add an OpenID identity.
webmaster@1 57 *
webmaster@1 58 * @ingroup forms
webmaster@1 59 * @see openid_user_add_validate()
webmaster@1 60 */
webmaster@1 61 function openid_user_add() {
webmaster@1 62 $form['openid_identifier'] = array(
webmaster@1 63 '#type' => 'textfield',
webmaster@1 64 '#title' => t('OpenID'),
webmaster@1 65 );
webmaster@1 66 $form['submit'] = array('#type' => 'submit', '#value' => t('Add an OpenID'));
webmaster@1 67 return $form;
webmaster@1 68 }
webmaster@1 69
webmaster@1 70 function openid_user_add_validate($form, &$form_state) {
webmaster@1 71 // Check for existing entries.
webmaster@1 72 $claimed_id = _openid_normalize($form_state['values']['openid_identifier']);
webmaster@1 73 if (db_result(db_query("SELECT authname FROM {authmap} WHERE authname='%s'", $claimed_id))) {
webmaster@1 74 form_set_error('openid_identifier', t('That OpenID is already in use on this site.'));
webmaster@1 75 }
webmaster@1 76 else {
webmaster@1 77 $return_to = url('user/'. arg(1) .'/openid', array('absolute' => TRUE));
webmaster@1 78 openid_begin($form_state['values']['openid_identifier'], $return_to);
webmaster@1 79 }
webmaster@1 80 }
webmaster@1 81
webmaster@1 82 /**
webmaster@1 83 * Menu callback; Delete the specified OpenID identity from the system.
webmaster@1 84 */
webmaster@1 85 function openid_user_delete($account, $aid = 0) {
webmaster@1 86 db_query("DELETE FROM {authmap} WHERE uid=%d AND aid=%d AND module='openid'", $account->uid, $aid);
webmaster@1 87 if (db_affected_rows()) {
webmaster@1 88 drupal_set_message(t('OpenID deleted.'));
webmaster@1 89 }
webmaster@1 90 drupal_goto('user/'. $account->uid .'/openid');
webmaster@1 91 }