From 0a6f7c1914cf78655d4700a84269faadf7ef69e3 Mon Sep 17 00:00:00 2001 From: brettp Date: Thu, 17 Mar 2011 01:16:48 +0000 Subject: Fixes #3141. Disabling twitter_api and oauth_api upon upgrade because we can't check previous states. Adding an admin notice. twitter_api conflicts with twitterservice and oauth_api conflicts with oauth_lib. git-svn-id: http://code.elgg.org/elgg/trunk@8742 36083f99-b078-4883-b0ff-0f9b5a30f544 --- ...031300-1.8_svn-twitter_api-12b832a5a7a3e1bd.php | 37 +++++++++++++++------- ...11031400-1.8_svn-oauth_api-8f33ee79c3e66222.php | 18 +++++++---- languages/en.php | 3 +- mod/oauth_api/manifest.xml | 5 +++ mod/twitter_api/manifest.xml | 5 +++ 5 files changed, 50 insertions(+), 18 deletions(-) diff --git a/engine/lib/upgrades/2011031300-1.8_svn-twitter_api-12b832a5a7a3e1bd.php b/engine/lib/upgrades/2011031300-1.8_svn-twitter_api-12b832a5a7a3e1bd.php index 1d82c4995..61f09aef5 100644 --- a/engine/lib/upgrades/2011031300-1.8_svn-twitter_api-12b832a5a7a3e1bd.php +++ b/engine/lib/upgrades/2011031300-1.8_svn-twitter_api-12b832a5a7a3e1bd.php @@ -6,23 +6,35 @@ * Updates the database for twitterservice to twitter_api changes. */ + +$ia = elgg_set_ignore_access(true); + // make sure we have updated plugins elgg_generate_plugin_entities(); -$db_prefix = elgg_get_config('dbprefix'); - -// find the old settings for twitterservice and copy them to the new one -$service = elgg_get_plugin_from_id('twitterservice'); -$api = elgg_get_plugin_from_id('twitter_api'); +$show_hidden = access_get_show_hidden_status(); +access_show_hidden_entities(true); -if (!$api || !$service) { +$db_prefix = elgg_get_config('dbprefix'); +$site_guid = elgg_get_site_entity()->getGUID(); +$old = elgg_get_plugin_from_id('twitterservice'); +$old_guid = $old->getGUID(); +$new = elgg_get_plugin_from_id('twitter_api'); +$has_settings = false; + +// if not loaded, don't bother. +if (!$old || !$new) { return true; } $settings = array('consumer_key', 'consumer_secret', 'sign_on', 'new_users'); foreach ($settings as $setting) { - $api->setSetting($setting, $service->getSetting($setting)); + $value = $old->getSetting($setting); + if ($value) { + $has_settings = true; + $new->setSetting($setting, $value); + } } // update the user settings @@ -32,9 +44,12 @@ $q = "UPDATE {$db_prefix}private_settings update_data($q); -if ($service->isActive()) { - $api->activate(); - $service->deactivate(); +// if there were settings, emit a notice to re-enable twitter_api +if ($has_settings) { + elgg_add_admin_notice('twitter_api:disabled', elgg_echo('update:twitter_api:deactivated')); } -$service->delete(); \ No newline at end of file +$old->delete(); + +access_show_hidden_entities($show_hidden); +elgg_set_ignore_access($ia); \ No newline at end of file diff --git a/engine/lib/upgrades/2011031400-1.8_svn-oauth_api-8f33ee79c3e66222.php b/engine/lib/upgrades/2011031400-1.8_svn-oauth_api-8f33ee79c3e66222.php index 98c00f506..e85268481 100644 --- a/engine/lib/upgrades/2011031400-1.8_svn-oauth_api-8f33ee79c3e66222.php +++ b/engine/lib/upgrades/2011031400-1.8_svn-oauth_api-8f33ee79c3e66222.php @@ -6,9 +6,14 @@ * Switches oauth_lib to oauth_api */ -// make sure we have the latest plugin objects. +$ia = elgg_set_ignore_access(true); + +// make sure we have updated plugins elgg_generate_plugin_entities(); +$show_hidden = access_get_show_hidden_status(); +access_show_hidden_entities(true); + $old = elgg_get_plugin_from_id('oauth_lib'); $new = elgg_get_plugin_from_id('oauth_api'); @@ -16,9 +21,10 @@ if (!$old || !$new) { return true; } -if ($old->isActive()) { - $old->deactivate(); - $new->activate(); -} +$old->deactivate(); +$old->delete(); + +elgg_add_admin_notice('oauth_api:disabled', elgg_echo('update:oauth_api:deactivated')); -$old->delete(); \ No newline at end of file +access_show_hidden_entities($show_hidden); +elgg_set_ignore_access($ia); diff --git a/languages/en.php b/languages/en.php index ad052870a..6efc4da3f 100644 --- a/languages/en.php +++ b/languages/en.php @@ -973,7 +973,8 @@ Once you have logged in, we highly recommend that you change your password. Upgrading Elgg documentation. If you require assistance, please post to the Community Support Forums.', - 'update:twitter_api:settings_found_unknown_status' => 'Twitter API (previously Twitter Service) settings were found, but its status could not be determined. Please re-activate it manually.', + 'update:twitter_api:deactivated' => 'Twitter API (previously Twitter Service) was deactivated during the upgrade. Please activate it manually if required.', + 'update:oauth_api:deactivated' => 'OAuth API (previously OAuth Lib) was deactivated during the upgrade. Please activate it manually if required.', 'deprecated:function' => '%s() was deprecated by %s()', diff --git a/mod/oauth_api/manifest.xml b/mod/oauth_api/manifest.xml index 1d743fdab..121c2e774 100644 --- a/mod/oauth_api/manifest.xml +++ b/mod/oauth_api/manifest.xml @@ -12,4 +12,9 @@ elgg_version 2010040201 + + + plugin + oauth_lib + diff --git a/mod/twitter_api/manifest.xml b/mod/twitter_api/manifest.xml index 28af93328..51306c98e 100644 --- a/mod/twitter_api/manifest.xml +++ b/mod/twitter_api/manifest.xml @@ -21,4 +21,9 @@ php_extension curl + + + plugin + twitterservice + -- cgit v1.2.3