Source of file WorkflowPermissionsTest.php
Size: 4,587 Bytes - Last Modified: 2021-12-23T10:11:37+00:00
/var/www/docs.ssmods.com/process/src/tests/WorkflowPermissionsTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | <?php /** * Tests for permissions on all Workflow Objects. * These will obviousely need to be modified should additional workflow permissions come online. * * @author russell@silverstripe.com * @license BSD License (http://silverstripe.org/bsd-license/) * @package advancedworkflow * @subpackage tests */ class WorkflowPermissionsTest extends SapphireTest { /** * @var string */ public static $fixture_file = 'advancedworkflow/tests/workflowpermissions.yml'; /** * Tests whether members with differing permissions, should be able to create & edit WorkflowDefinitions */ public function testWorkflowDefinitionCanPerms() { // Very limited perms. No create. $this->logInWithPermission('CMS_ACCESS_AdvancedWorkflowAdmin'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'no-actions'); $this->assertFalse($workflowdef->canCreate()); // Limited perms. No create. $this->logInWithPermission('VIEW_ACTIVE_WORKFLOWS'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'no-actions'); $this->assertFalse($workflowdef->canCreate()); // Has perms. Can create. $this->logInWithPermission('CREATE_WORKFLOW'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'no-actions'); $this->assertTrue($workflowdef->canCreate()); // Limited perms. No delete $this->logInWithPermission('CREATE_WORKFLOW'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'no-actions'); $this->assertFalse($workflowdef->canDelete()); // Has perms. No delete $this->logInWithPermission('DELETE_WORKFLOW'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'no-actions'); $this->assertTrue($workflowdef->canDelete()); } /** * Tests whether members with differing permissions, should be able to create & edit WorkflowActions */ public function testWorkflowActionCanPerms() { // Very limited perms. No create. $this->logInWithPermission('CMS_ACCESS_AdvancedWorkflowAdmin'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'with-actions'); $this->assertFalse($workflowdef->Actions()->first()->canCreate()); $this->assertFalse($workflowdef->Actions()->first()->canEdit()); $this->assertFalse($workflowdef->Actions()->first()->canDelete()); // Limited perms. No create or delete. $this->logInWithPermission('VIEW_ACTIVE_WORKFLOWS'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'with-actions'); $this->assertFalse($workflowdef->Actions()->first()->canCreate()); $this->assertFalse($workflowdef->Actions()->first()->canCreate()); $this->assertFalse($workflowdef->Actions()->first()->canDelete()); // Has perms. Can create. $this->logInWithPermission('CREATE_WORKFLOW'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'with-actions'); $this->assertTrue($workflowdef->Actions()->first()->canCreate()); $this->assertTrue($workflowdef->Actions()->first()->canEdit()); // Limited perms. No Delete $this->assertFalse($workflowdef->Actions()->first()->canDelete()); } /** * Tests whether members with differing permissions, should be able to create & edit WorkflowActions */ public function testWorkflowTransitionPerms() { // Very limited perms. No create. $this->logInWithPermission('CMS_ACCESS_AdvancedWorkflowAdmin'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'with-actions-and-transitions'); $this->assertFalse($workflowdef->Actions()->first()->Transitions()->first()->canCreate()); $this->assertFalse($workflowdef->Actions()->first()->Transitions()->first()->canEdit()); $this->assertFalse($workflowdef->Actions()->first()->Transitions()->first()->canDelete()); // Limited perms. No create. $this->logInWithPermission('VIEW_ACTIVE_WORKFLOWS'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'with-actions-and-transitions'); $this->assertFalse($workflowdef->Actions()->first()->Transitions()->first()->canCreate()); $this->assertFalse($workflowdef->Actions()->first()->Transitions()->first()->canEdit()); $this->assertFalse($workflowdef->Actions()->first()->Transitions()->first()->canDelete()); // Has perms. Can create. $this->logInWithPermission('CREATE_WORKFLOW'); $workflowdef = $this->objFromFixture('WorkflowDefinition', 'with-actions-and-transitions'); $this->assertTrue($workflowdef->Actions()->first()->Transitions()->first()->canCreate()); $this->assertTrue($workflowdef->Actions()->first()->Transitions()->first()->canEdit()); $this->assertTrue($workflowdef->Actions()->first()->Transitions()->first()->canDelete()); } } |