diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1477ea2..9501566 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -48,6 +48,9 @@ jobs: steps: - uses: actions/checkout@v2 + - name: Fix up git URLs + run: echo -e '[url "https://github.com/"]\n insteadOf = "git://github.com/"' >> ~/.gitconfig + - name: environment run: | echo "GITHUB_WORKSPACE=${GITHUB_WORKSPACE}" @@ -58,7 +61,7 @@ jobs: - name: docker-compose install run: | - curl -L https://github.com/docker/compose/releases/download/1.11.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose + curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > ~/docker-compose chmod +x ~/docker-compose sudo mv ~/docker-compose /usr/local/bin/docker-compose docker-compose --version diff --git a/Model/Behavior/WorkflowBehavior.php b/Model/Behavior/WorkflowBehavior.php index 4fb2ffc..94d1640 100644 --- a/Model/Behavior/WorkflowBehavior.php +++ b/Model/Behavior/WorkflowBehavior.php @@ -292,7 +292,16 @@ public function getWorkflowConditions(Model $model, $conditions = array()) { $langConditions = array(); } + $currentBlockId = Current::read('Block.id'); + $blockConditions = []; + if ($currentBlockId && $model->hasField('block_id')) { + $blockConditions = [ + $model->alias . '.block_id' => $currentBlockId, + ]; + } + $conditions = Hash::merge( + $blockConditions, array( $langConditions, array('OR' => array($activeConditions, $latestConditons)) @@ -361,7 +370,8 @@ public function canEditWorkflowContent(Model $model, $data) { if (! isset($data[$model->alias]['created_user'])) { return false; } - return ((int)$data[$model->alias]['created_user'] === (int)Current::read('User.id')); + return (Current::permission('content_creatable') && + ((int)$data[$model->alias]['created_user'] === (int)Current::read('User.id'))); } /** diff --git a/Test/Case/Model/Behavior/WorkflowBehavior/CanEditWorkflowContentTest.php b/Test/Case/Model/Behavior/WorkflowBehavior/CanEditWorkflowContentTest.php index 710cbb7..9c11277 100644 --- a/Test/Case/Model/Behavior/WorkflowBehavior/CanEditWorkflowContentTest.php +++ b/Test/Case/Model/Behavior/WorkflowBehavior/CanEditWorkflowContentTest.php @@ -92,6 +92,7 @@ public function testCanEditWorkflowContent($permission, $assert, $userId, $data) Current::$current['User']['id'] = $userId; Current::write('Room.id', '2'); Current::writePermission('2', 'content_editable', $permission); + Current::writePermission('2', 'content_creatable', true); $result = $this->TestModel->canEditWorkflowContent($data); //チェック