From 1b658ae850c10bc55adfce4db46d25e3ff88da05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Hojtsy?= Date: Sun, 2 Sep 2007 14:42:30 +0000 Subject: #144337 by yched: batch support for node access table rebuilding --- includes/module.inc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'includes') 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(); + } } /** -- cgit v1.2.3