diff options
author | webchick <webchick@24967.no-reply.drupal.org> | 2012-08-18 13:27:54 +0200 |
---|---|---|
committer | webchick <webchick@24967.no-reply.drupal.org> | 2012-08-18 13:27:54 +0200 |
commit | feac3940c31baace6acf444a2a38284a1c8d32cd (patch) | |
tree | 77c4c371bee68332d6a97ac201342b51b020e62f /modules | |
parent | f06b61d62e6d8220274da27cc637cbce5bbae392 (diff) | |
download | brdo-feac3940c31baace6acf444a2a38284a1c8d32cd.tar.gz brdo-feac3940c31baace6acf444a2a38284a1c8d32cd.tar.bz2 |
Issue #1685110 by BTMash, aspilicious, jhodgdon: Fixed Upgrade of forum.module d6-d7 loses permission.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/simpletest/tests/upgrade/drupal-6.forum.database.php | 14 | ||||
-rw-r--r-- | modules/simpletest/tests/upgrade/upgrade.forum.test | 6 | ||||
-rw-r--r-- | modules/system/system.install | 49 |
3 files changed, 57 insertions, 12 deletions
diff --git a/modules/simpletest/tests/upgrade/drupal-6.forum.database.php b/modules/simpletest/tests/upgrade/drupal-6.forum.database.php index 5a2cc3324..059af6d22 100644 --- a/modules/simpletest/tests/upgrade/drupal-6.forum.database.php +++ b/modules/simpletest/tests/upgrade/drupal-6.forum.database.php @@ -258,3 +258,17 @@ db_insert('vocabulary_node_types')->fields(array( )) ->execute(); +// Provide all users with the ability to create forum topics. +$results = db_select('permission', 'p') + ->fields('p') + ->execute(); + +foreach ($results as $result) { + $permissions = $result->perm . ', create forum topics'; + db_update('permission') + ->fields(array( + 'perm' => $permissions, + )) + ->condition('rid', $result->rid) + ->execute(); +} diff --git a/modules/simpletest/tests/upgrade/upgrade.forum.test b/modules/simpletest/tests/upgrade/upgrade.forum.test index 99269d9f4..ebac85415 100644 --- a/modules/simpletest/tests/upgrade/upgrade.forum.test +++ b/modules/simpletest/tests/upgrade/upgrade.forum.test @@ -56,5 +56,9 @@ class ForumUpgradePathTestCase extends UpgradePathTestCase { $this->drupalGet("forum/$tid"); $this->assertText('Bananas'); - } + $this->drupalLogout(); + + $this->drupalGet("node/add/forum/$tid"); + $this->assertResponse(200, t('User can access forum creation page.')); + } } diff --git a/modules/system/system.install b/modules/system/system.install index 1161d6cdd..fab4b9648 100644 --- a/modules/system/system.install +++ b/modules/system/system.install @@ -1711,17 +1711,18 @@ function system_update_dependencies() { function system_update_7000() { $result = db_query("SELECT rid, perm FROM {permission} ORDER BY rid"); foreach ($result as $role) { - $renamed_permission = preg_replace('/(?<=^|,\ )create\ blog\ entries(?=,|$)/', 'create blog content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )edit\ own\ blog\ entries(?=,|$)/', 'edit own blog content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )edit\ any\ blog\ entry(?=,|$)/', 'edit any blog content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )delete\ own\ blog\ entries(?=,|$)/', 'delete own blog content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )delete\ any\ blog\ entry(?=,|$)/', 'delete any blog content', $role->perm); - - $renamed_permission = preg_replace('/(?<=^|,\ )create\ forum\ topics(?=,|$)/', 'create forum content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )delete\ any\ forum\ topic(?=,|$)/', 'delete any forum content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )delete\ own\ forum\ topics(?=,|$)/', 'delete own forum content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )edit\ any\ forum\ topic(?=,|$)/', 'edit any forum content', $role->perm); - $renamed_permission = preg_replace('/(?<=^|,\ )edit\ own\ forum\ topics(?=,|$)/', 'edit own forum content', $role->perm); + $renamed_permission = $role->perm; + $renamed_permission = preg_replace('/(?<=^|,\ )create\ blog\ entries(?=,|$)/', 'create blog content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )edit\ own\ blog\ entries(?=,|$)/', 'edit own blog content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )edit\ any\ blog\ entry(?=,|$)/', 'edit any blog content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )delete\ own\ blog\ entries(?=,|$)/', 'delete own blog content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )delete\ any\ blog\ entry(?=,|$)/', 'delete any blog content', $renamed_permission); + + $renamed_permission = preg_replace('/(?<=^|,\ )create\ forum\ topics(?=,|$)/', 'create forum content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )delete\ any\ forum\ topic(?=,|$)/', 'delete any forum content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )delete\ own\ forum\ topics(?=,|$)/', 'delete own forum content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )edit\ any\ forum\ topic(?=,|$)/', 'edit any forum content', $renamed_permission); + $renamed_permission = preg_replace('/(?<=^|,\ )edit\ own\ forum\ topics(?=,|$)/', 'edit own forum content', $renamed_permission); if ($renamed_permission != $role->perm) { db_update('permission') @@ -3025,6 +3026,32 @@ function system_update_7074() { } /** + * Fix renamed queries from system_update_7000(). + */ +function system_update_7075() { + $permission_changes = array( + 'create blog entries' => 'create blog content', + 'edit own blog entries' => 'edit own blog content', + 'edit any blog entry' => 'edit any blog content', + 'delete own blog entries' => 'delete own blog content', + 'delete any blog entry' => 'delete any blog content', + + 'create forum topics' => 'create forum content', + 'edit own forum topics' => 'edit own forum content', + 'edit any forum topic' => 'edit any forum content', + 'delete own forum topics' => 'delete own forum content', + 'delete any forum topic' => 'delete any forum content', + ); + + foreach ($permission_changes as $permission_key => $permission_change) { + db_update('role_permission') + ->fields(array('permission' => $permission_change)) + ->condition('permission', $permission_key) + ->execute(); + } +} + +/** * @} End of "defgroup updates-7.x-extra". * The next series of updates should start at 8000. */ |