From 11a7ca1c5c23af990422783b14d021a7c177032b Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Sat, 28 Jan 2012 12:27:05 -0500 Subject: fixed bug where email wasn't being passed to register action - now using annotations instead of metadata to hold openid identifier --- actions/openid_client/register.php | 3 ++- return.php | 7 +++---- start.php | 19 ++++++++----------- views/default/forms/openid_client/register.php | 2 +- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/actions/openid_client/register.php b/actions/openid_client/register.php index c4d3501ed..f0ad2a5fd 100644 --- a/actions/openid_client/register.php +++ b/actions/openid_client/register.php @@ -19,8 +19,9 @@ try { forward(REFERER); } $user = get_entity($guid); +openid_client_set_subtype($user); -$user->openid_identifier = $openid_identifier; +$user->annotate('openid_identifier', $openid_identifier, ACCESS_PUBLIC); elgg_set_user_validation_status($guid, true, 'openid'); if (!elgg_trigger_plugin_hook('register', 'user', array('user' => $user), true)) { diff --git a/return.php b/return.php index dbc57d318..87ce5b19f 100644 --- a/return.php +++ b/return.php @@ -25,11 +25,10 @@ if (!$data || !$data['openid_identifier']) { } // does this user exist -$users = elgg_get_entities_from_metadata(array( +$users = elgg_get_entities_from_annotations(array( 'type' => 'user', - 'subtype' => 'openid', - 'metadata_name' => 'openid_identifier', - 'metadata_value' => $data['openid_identifier'], + 'annotation_name' => 'openid_identifier', + 'annotation_value' => $data['openid_identifier'], )); if ($users) { // log in user and maybe update account (admin setting, user prompt?) diff --git a/start.php b/start.php index a8e6fd94e..82dcd5c11 100644 --- a/start.php +++ b/start.php @@ -25,10 +25,8 @@ function openid_client_init() { $base = elgg_get_plugins_path() . 'openid_client/lib'; elgg_register_library('openid_client', "$base/helpers.php"); - elgg_register_event_handler('create', 'user', 'openid_client_set_subtype', 1); - // don't let OpenID users set their passwords - elgg_register_event_handler('pagesetup', 'system', 'openid_client_remove_email'); + elgg_register_event_handler('pagesetup', 'system', 'openid_client_remove_password'); // the return to page needs to be public elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'openid_client_public'); @@ -37,11 +35,10 @@ function openid_client_init() { /** * Set the correct subtype for OpenID users * - * @param string $event Event name - * @param string $type Object type - * @param ElggUser $user New user + * @param ElggUser $user New user + * @return void */ -function openid_client_set_subtype($event, $type, $user) { +function openid_client_set_subtype($user) { $db_prefix = elgg_get_config('dbprefix'); $guid = (int)$user->getGUID(); $subtype_id = (int)add_subtype('user', 'openid'); @@ -71,7 +68,7 @@ function openid_client_setup_menu($hook, $type, $menu, $params) { 'wordpress' => 'toggle', ), ); - $items = elgg_trigger_plugin_hook('register', 'openid_login', null, $items); + $items = elgg_trigger_plugin_hook('register', 'openid_client:login', null, $items); $priority = 100; foreach ($items as $type => $providers) { @@ -105,7 +102,7 @@ function openid_client_setup_menu($hook, $type, $menu, $params) { /** * Remove the password view from the account settings form */ -function openid_client_remove_email() { +function openid_client_remove_password() { $page_owner = elgg_get_page_owner_entity(); if ($page_owner && elgg_instanceof($page_owner, 'user', 'openid')) { elgg_unextend_view('forms/account/settings', 'core/settings/account/password'); @@ -116,8 +113,8 @@ function openid_client_remove_email() { * Add pages to the list of public pages for walled garden needed for OpenID * transaction * - * @param string $hook Hook name - * @param string $type Hook type + * @param string $hook Hook name + * @param string $type Hook type * @param array $pages Array of public pages * @return array */ diff --git a/views/default/forms/openid_client/register.php b/views/default/forms/openid_client/register.php index 6cae2bb84..6044f0f0b 100644 --- a/views/default/forms/openid_client/register.php +++ b/views/default/forms/openid_client/register.php @@ -41,7 +41,7 @@ if (!$email_available) { $email_input = elgg_view('input/email', array( 'name' => 'email', 'value' => $vars['email'], - 'disabled' => $email_available, + 'readonly' => $email_available, )); $openid_input = elgg_view('input/hidden', array( -- cgit v1.2.3