summaryrefslogtreecommitdiff
path: root/modules/user/user.admin.inc
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-07-01 08:39:56 +0000
committerDries Buytaert <dries@buytaert.net>2009-07-01 08:39:56 +0000
commitfb125851a3cc5aa494ee315a5d7d129e2995a81f (patch)
tree2ce7881a22bba6bbd5cd97c211f88dfb6e483ed9 /modules/user/user.admin.inc
parent8eb8dcc8425295d1a4278613031812bff7d98c15 (diff)
downloadbrdo-fb125851a3cc5aa494ee315a5d7d129e2995a81f.tar.gz
brdo-fb125851a3cc5aa494ee315a5d7d129e2995a81f.tar.bz2
- Patch #306027 by agentrickard, catch, dereine, Dave Reid, drewish, et al: automatically clean the {role_permission} table when modules are uninstalled.
Diffstat (limited to 'modules/user/user.admin.inc')
-rw-r--r--modules/user/user.admin.inc15
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index b81f1d6e9..b5b3e5330 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -945,3 +945,18 @@ function user_modules_installed($modules) {
}
}
}
+
+/**
+ * Implement hook_modules_uninstalled().
+ */
+function user_modules_uninstalled($modules) {
+ $permissions = array();
+ foreach ($modules as $module) {
+ $permissions = array_merge($permissions, array_keys(module_invoke($module, 'perm')));
+ }
+ if (!empty($permissions)) {
+ db_delete('role_permission')
+ ->condition('permission', $permissions, 'IN')
+ ->execute();
+ }
+}