function testCanActOnTarget_Pub_Verify() { $n2 = Notebook::getOneFromDb(['notebook_id' => 1003], $this->DB); // owned by 102 $actions_list = Action::getAllFromDb([], $this->DB); $actions = []; foreach ($actions_list as $act_elt) { $actions[$act_elt->name] = $act_elt; } $rat = new Role_Action_Target(['last_user_id' => 110, 'role_id' => 3, 'action_id' => 1, 'target_type' => 'notebook', 'target_id' => 1003, 'DB' => $this->DB]); $rat->updateDb(); $this->assertTrue($rat->matchesDb); // basic, field user $u = User::getOneFromDb(['user_id' => 101], $this->DB); $this->assertFalse($n2->flag_workflow_published); $this->assertFalse($n2->flag_workflow_validated); $this->assertFalse($u->canActOnTarget($actions['view'], $n2)); $this->assertFalse($u->canActOnTarget($actions['edit'], $n2)); $this->assertTrue($u->canActOnTarget($actions['create'], $n2)); $this->assertFalse($u->canActOnTarget($actions['delete'], $n2)); $this->assertFalse($u->canActOnTarget($actions['publish'], $n2)); $this->assertFalse($u->canActOnTarget($actions['verify'], $n2)); $n2->flag_workflow_published = true; $n2->updateDb(); $this->assertTrue($n2->matchesDb); $u->clearCaches(); $this->assertFalse($u->canActOnTarget($actions['view'], $n2)); $this->assertFalse($u->canActOnTarget($actions['edit'], $n2)); $this->assertTrue($u->canActOnTarget($actions['create'], $n2)); $this->assertFalse($u->canActOnTarget($actions['delete'], $n2)); $this->assertFalse($u->canActOnTarget($actions['publish'], $n2)); $this->assertFalse($u->canActOnTarget($actions['verify'], $n2)); $n2->flag_workflow_validated = true; $n2->updateDb(); $this->assertTrue($n2->matchesDb); $u->clearCaches(); $this->assertTrue($u->canActOnTarget($actions['view'], $n2)); $this->assertFalse($u->canActOnTarget($actions['edit'], $n2)); $this->assertTrue($u->canActOnTarget($actions['create'], $n2)); $this->assertFalse($u->canActOnTarget($actions['delete'], $n2)); $this->assertFalse($u->canActOnTarget($actions['publish'], $n2)); $this->assertFalse($u->canActOnTarget($actions['verify'], $n2)); }
function testRenderAsListItem_Editable() { $ap = Authoritative_Plant::getOneFromDb(['authoritative_plant_id' => 5001], $this->DB); global $USER; $USER = User::getOneFromDb(['username' => TESTINGUSER], $this->DB); //$this->todo('make user able to edit the authoritative plant'); $rat = new Role_Action_Target(['role_action_target_link_id' => 500, 'last_user_id' => 0, 'role_id' => 3, 'action_id' => 2, 'target_type' => 'global_plant', 'target_id' => 0, 'DB' => $this->DB]); $rat->updateDb(); $this->assertTrue($rat->matchesDb); $canonical = '<li data-authoritative_plant_id="5001" data-created_at="' . $ap->created_at . '" data-updated_at="' . $ap->updated_at . '" ' . 'data-class="AP_A_class" data-order="AP_A_order" data-family="AP_A_family" data-genus="AP_A_genus" data-species="AP_A_species" data-variety="AP_A_variety" data-catalog_identifier="AP_1_CI" data-flag_active="1" data-flag_delete="0" data-can-edit="1"><i class="icon-ok"></i> <a href="/digitalfieldnotebooks/app_code/authoritative_plant.php?action=view&authoritative_plant_id=5001">' . htmlentities($ap->renderAsShortText()) . '</a></li>'; $rendered = $ap->renderAsListItem(); // echo "<pre>\n".htmlentities($canonical)."\n".htmlentities($rendered)."\n</pre>"; $this->assertEqual($canonical, $rendered); $rat->doDelete(); unset($USER); }