summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-08-18 13:27:54 +0200
committerwebchick <webchick@24967.no-reply.drupal.org>2012-08-18 13:27:54 +0200
commitfeac3940c31baace6acf444a2a38284a1c8d32cd (patch)
tree77c4c371bee68332d6a97ac201342b51b020e62f /modules
parentf06b61d62e6d8220274da27cc637cbce5bbae392 (diff)
downloadbrdo-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.php14
-rw-r--r--modules/simpletest/tests/upgrade/upgrade.forum.test6
-rw-r--r--modules/system/system.install49
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.
*/