diff -r 07239de796bb -r e756a8c72c3d cms/drupal/modules/openid/openid.pages.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/drupal/modules/openid/openid.pages.inc Fri Sep 08 12:04:06 2017 +0200 @@ -0,0 +1,116 @@ +fields(array( + 'uid' => $account->uid, + 'authname' => $identity, + 'module' => 'openid', + )) + ->execute(); + drupal_set_message(t('Successfully added %identity', array('%identity' => $identity))); + } + + $header = array(t('OpenID'), t('Operations')); + $rows = array(); + + $result = db_query("SELECT * FROM {authmap} WHERE module='openid' AND uid=:uid", array(':uid' => $account->uid)); + foreach ($result as $identity) { + $rows[] = array(check_plain($identity->authname), l(t('Delete'), 'user/' . $account->uid . '/openid/delete/' . $identity->aid)); + } + + $build['openid_table'] = array( + '#theme' => 'table', + '#header' => $header, + '#rows' => $rows, + '#empty' => t('No OpenID identities available for this account.'), + ); + $build['openid_user_add'] = drupal_get_form('openid_user_add'); + return $build; +} + +/** + * Form builder; Add an OpenID identity. + * + * @ingroup forms + * @see openid_user_add_validate() + */ +function openid_user_add() { + $form['openid_identifier'] = array( + '#type' => 'textfield', + '#title' => t('OpenID'), + ); + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Add an OpenID')); + return $form; +} + +function openid_user_add_validate($form, &$form_state) { + // Check for existing entries. + $claimed_id = openid_normalize($form_state['values']['openid_identifier']); + if (db_query("SELECT authname FROM {authmap} WHERE authname = :authname", (array(':authname' => $claimed_id)))->fetchField()) { + form_set_error('openid_identifier', t('That OpenID is already in use on this site.')); + } +} + +function openid_user_add_submit($form, &$form_state) { + $return_to = url('user/' . arg(1) . '/openid', array('absolute' => TRUE)); + openid_begin($form_state['values']['openid_identifier'], $return_to); +} + +/** + * Menu callback; Delete the specified OpenID identity from the system. + */ +function openid_user_delete_form($form, $form_state, $account, $aid = 0) { + $authname = db_query("SELECT authname FROM {authmap} WHERE uid = :uid AND aid = :aid AND module = 'openid'", array( + ':uid' => $account->uid, + ':aid' => $aid, + )) + ->fetchField(); + return confirm_form(array(), t('Are you sure you want to delete the OpenID %authname for %user?', array('%authname' => $authname, '%user' => $account->name)), 'user/' . $account->uid . '/openid'); +} + +function openid_user_delete_form_submit($form, &$form_state) { + $query = db_delete('authmap') + ->condition('uid', $form_state['build_info']['args'][0]->uid) + ->condition('aid', $form_state['build_info']['args'][1]) + ->condition('module', 'openid') + ->execute(); + if ($query) { + drupal_set_message(t('OpenID deleted.')); + } + $form_state['redirect'] = 'user/' . $form_state['build_info']['args'][0]->uid . '/openid'; +}