diff --git a/module/common/model.php b/module/common/model.php index 0f39d857db..2eda630caf 100644 --- a/module/common/model.php +++ b/module/common/model.php @@ -2575,18 +2575,20 @@ eof; $rawModule = $moduleName; if(!empty($actionData['url']) && is_array($actionData['url'])) { - $moduleName = ($actionData['url']['module'] == 'story' && in_array($moduleName, array('epic', 'requirement', 'story'))) ? $data->type : $actionData['url']['module']; - $methodName = $actionData['url']['method']; - $params = $actionData['url']['params']; - if(!common::hasPriv($moduleName, $methodName, $data)) return false; + $moduleName = ($actionData['url']['module'] == 'story' && in_array($moduleName, array('epic', 'requirement', 'story'))) ? $data->type : $actionData['url']['module']; + $methodName = $actionData['url']['method']; + $params = $actionData['url']['params']; + $storySubdivide = in_array($moduleName, array('epic', 'requirement', 'story')) && $action == 'subdivide'; + if(!$storySubdivide && !common::hasPriv($moduleName, $methodName, $data)) return false; $actionData['url'] = helper::createLink($moduleName, $methodName, $params, '', !empty($actionData['url']['onlybody']) ? true : false); } else if(!empty($actionData['data-url']) && is_array($actionData['data-url'])) { - $moduleName = ($actionData['data-url']['module'] == 'story' && in_array($moduleName, array('epic', 'requirement', 'story'))) ? $data->type : $actionData['data-url']['module']; - $methodName = $actionData['data-url']['method']; - $params = $actionData['data-url']['params']; - if(!common::hasPriv($moduleName, $methodName, $data)) return false; + $moduleName = ($actionData['data-url']['module'] == 'story' && in_array($moduleName, array('epic', 'requirement', 'story'))) ? $data->type : $actionData['data-url']['module']; + $methodName = $actionData['data-url']['method']; + $params = $actionData['data-url']['params']; + $storySubdivide = in_array($moduleName, array('epic', 'requirement', 'story')) && $action == 'subdivide'; + if(!$storySubdivide && !common::hasPriv($moduleName, $methodName, $data)) return false; $actionData['data-url'] = helper::createLink($moduleName, $methodName, $params, '', !empty($actionData['data-url']['onlybody']) ? true : false); } elseif(empty($actionData['url'])) diff --git a/module/story/ui/view.html.php b/module/story/ui/view.html.php index 6b569c8c1d..7b27567bfd 100644 --- a/module/story/ui/view.html.php +++ b/module/story/ui/view.html.php @@ -225,9 +225,8 @@ foreach($actions as $key => $action) if(isset($action['icon']) && $action['icon'] == 'split') { - $canBatchCreateStory = $story->grade < $maxGradeGroup[$story->type] && empty($story->hasOtherTypeChild); $objectID = $app->tab == 'project' ? ($project->multiple ? $projectID : $executionID) : $executionID; - if($canBatchCreateStory) + if($story->grade < $maxGradeGroup[$story->type] && empty($story->hasOtherTypeChild) && common::hasPriv($story->type, 'batchCreate')) { $actions[$key]['url'] = createLink($story->type, 'batchCreate', "productID=$story->product&branch=$story->branch&moduleID=$story->module&storyID=$story->id&executionID=$objectID"); }