From 0d6bd0d534483da7b5e0c3eab99d1f979e7e511a Mon Sep 17 00:00:00 2001 From: James Sansbury Date: Thu, 6 Jun 2013 13:20:17 -0400 Subject: [PATCH] Issue #1436260: During node update, do not change workflow state unless a new state is explicitly specified. --- workbench_moderation.module | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/workbench_moderation.module b/workbench_moderation.module index 840b932..898e1ee 100644 --- a/workbench_moderation.module +++ b/workbench_moderation.module @@ -657,6 +657,12 @@ function workbench_moderation_node_presave($node) { * Wrapper call to the update hook. */ function workbench_moderation_node_insert($node) { + // Set the default moderation state on the new node if it's not already set. + if (!isset($node->workbench_moderation_state_new)) { + $key = 'workbench_moderation_default_state_' . $node->type; + $node->workbench_moderation_state_new = variable_get($key, workbench_moderation_state_none()); + } + workbench_moderation_node_update($node); } @@ -669,9 +675,11 @@ function workbench_moderation_node_update($node) { global $user; // Don't proceed if moderation is not enabled on this content type, or if - // we're replacing an already-published revision. + // we're replacing an already-published revision, or if there is no new + // moderation state set. if (!workbench_moderation_node_type_moderated($node->type) || - !empty($node->workbench_moderation['updating_live_revision'])) { + !empty($node->workbench_moderation['updating_live_revision']) || + !isset($node->workbench_moderation_state_new)) { return; } @@ -679,9 +687,6 @@ function workbench_moderation_node_update($node) { if (!isset($node->workbench_moderation_state_current)) { $node->workbench_moderation_state_current = ($node->status ? workbench_moderation_state_published() : workbench_moderation_state_none()); }; - if (!isset($node->workbench_moderation_state_new)) { - $node->workbench_moderation_state_new = variable_get('workbench_moderation_default_state_' . $node->type, workbench_moderation_state_none()); - }; // If this is a new node, give it some information about 'my revision'. if (!isset($node->workbench_moderation)) { -- 1.7.10.4