summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorGábor Hojtsy <gabor@hojtsy.hu>2007-09-02 14:42:30 +0000
committerGábor Hojtsy <gabor@hojtsy.hu>2007-09-02 14:42:30 +0000
commit1b658ae850c10bc55adfce4db46d25e3ff88da05 (patch)
treead8fb0738c7313374b53b5ce920317708b58ddb9 /includes
parent0c8a7c0de7324466ccc435c1afa4babd30d55bd9 (diff)
downloadbrdo-1b658ae850c10bc55adfce4db46d25e3ff88da05.tar.gz
brdo-1b658ae850c10bc55adfce4db46d25e3ff88da05.tar.bz2
#144337 by yched: batch support for node access table rebuilding
Diffstat (limited to 'includes')
-rw-r--r--includes/module.inc15
1 files changed, 15 insertions, 0 deletions
diff --git a/includes/module.inc b/includes/module.inc
index 7edbf17a4..4c4d5eba0 100644
--- a/includes/module.inc
+++ b/includes/module.inc
@@ -260,6 +260,10 @@ function module_enable($module_list) {
foreach ($invoke_modules as $module) {
module_invoke($module, 'enable');
+ // Check if node_access table needs rebuilding.
+ if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) {
+ node_access_needs_rebuild(TRUE);
+ }
}
}
@@ -273,6 +277,11 @@ function module_disable($module_list) {
$invoke_modules = array();
foreach ($module_list as $module) {
if (module_exists($module)) {
+ // Check if node_access table needs rebuilding.
+ if (!node_access_needs_rebuild() && module_hook($module, 'node_grants')) {
+ node_access_needs_rebuild(TRUE);
+ }
+
module_load_install($module);
module_invoke($module, 'disable');
db_query("UPDATE {system} SET status = %d, throttle = %d WHERE type = '%s' AND name = '%s'", 0, 0, 'module', $module);
@@ -286,6 +295,12 @@ function module_disable($module_list) {
// Force to regenerate the stored list of hook implementations.
module_implements('', FALSE, TRUE);
}
+
+ // If there remains no more node_access module, rebuilding will be
+ // straightforward, we can do it right now.
+ if (node_access_needs_rebuild() && count(module_implements('node_grants')) == 0) {
+ node_access_rebuild();
+ }
}
/**