aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCash Costello <cash.costello@gmail.com>2012-01-28 12:27:05 -0500
committerCash Costello <cash.costello@gmail.com>2012-01-28 12:27:05 -0500
commit11a7ca1c5c23af990422783b14d021a7c177032b (patch)
tree6fc2de6bb0d20b048a9f9a2e697850fd2b16143e
parent80ed1e24b59d62c411cb2bed5535d9e6fd9fcc9a (diff)
downloadelgg-11a7ca1c5c23af990422783b14d021a7c177032b.tar.gz
elgg-11a7ca1c5c23af990422783b14d021a7c177032b.tar.bz2
fixed bug where email wasn't being passed to register action - now using annotations instead of metadata to hold openid identifier
-rw-r--r--actions/openid_client/register.php3
-rw-r--r--return.php7
-rw-r--r--start.php19
-rw-r--r--views/default/forms/openid_client/register.php2
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(