public function makeAll(&$demoDataHelper) { assert('$demoDataHelper instanceof DemoDataHelper'); assert('$demoDataHelper->isSetRange("User")'); $missions = array(); foreach (self::getMissionData() as $randomMissionData) { $postData = array(); $mission = new Mission(); $mission->setScenario('importModel'); $mission->status = Mission::STATUS_AVAILABLE; $mission->owner = $demoDataHelper->getRandomByModelName('User'); $mission->createdByUser = $mission->owner; $mission->description = $randomMissionData['description']; $mission->reward = $randomMissionData['reward']; //Add some comments foreach ($randomMissionData['comments'] as $commentDescription) { $comment = new Comment(); $comment->setScenario('importModel'); $comment->createdByUser = $demoDataHelper->getRandomByModelName('User'); $comment->description = $commentDescription; $mission->comments->add($comment); } $mission->addPermissions(Group::getByName(Group::EVERYONE_GROUP_NAME), Permission::READ_WRITE); $saved = $mission->save(); assert('$saved'); $mission = Mission::getById($mission->id); ReadPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($mission, Group::getByName(Group::EVERYONE_GROUP_NAME)); $mission->save(); $missions[] = $mission->id; } $demoDataHelper->setRangeByModelName('Mission', $missions[0], $missions[count($missions) - 1]); }
public function testCreateAndGetMissionById() { $super = User::getByUsername('super'); $fileModel = ZurmoTestHelper::createFileModel(); $steven = UserTestHelper::createBasicUser('steven'); $dueStamp = DateTimeUtil::convertTimestampToDbFormatDateTime(time() + 10000); $mission = new Mission(); $mission->owner = $super; $mission->takenByUser = $steven; $mission->dueDateTime = $dueStamp; $mission->description = 'My test description'; $mission->reward = 'My test reward'; $mission->status = Mission::STATUS_AVAILABLE; $mission->files->add($fileModel); $mission->addPermissions(Group::getByName(Group::EVERYONE_GROUP_NAME), Permission::READ_WRITE); $this->assertTrue($mission->save()); $id = $mission->id; $mission->forget(); unset($mission); $mission = Mission::getById($id); $this->assertEquals('My test description', $mission->description); $this->assertEquals('My test reward', $mission->reward); $this->assertEquals(Mission::STATUS_AVAILABLE, $mission->status); $this->assertEquals($super, $mission->owner); $this->assertEquals($steven, $mission->takenByUser); $this->assertEquals(1, $mission->files->count()); $this->assertEquals($fileModel, $mission->files->offsetGet(0)); $this->assertEquals($dueStamp, $mission->dueDateTime); $this->assertTrue(MissionsUtil::hasUserReadMissionLatest($mission, $super)); $this->assertFalse(MissionsUtil::hasUserReadMissionLatest($mission, $steven)); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); AllPermissionsOptimizationUtil::rebuild(); $everyoneGroup = Group::getByName(Group::EVERYONE_GROUP_NAME); $everyoneGroup->save(); $super = User::getByUsername('super'); //Steven have access to missions module $steven = UserTestHelper::createBasicUser('steven'); $steven->setRight('MissionsModule', MissionsModule::RIGHT_ACCESS_MISSIONS); $steven->save(); //Jack dont have acess to missions module $jack = UserTestHelper::createBasicUser('jack'); $mission = new Mission(); $mission->owner = $super; $mission->takenByUser = $steven; $mission->description = 'My test description'; $mission->reward = 'My test reward'; $mission->status = Mission::STATUS_AVAILABLE; $mission->addPermissions($everyoneGroup, Permission::READ_WRITE); assert($mission->save()); // Not Coding Standard AllPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($mission, $everyoneGroup); }
public function testCreateAndGetMissionById() { $super = User::getByUsername('super'); $fileModel = ZurmoTestHelper::createFileModel(); $steven = UserTestHelper::createBasicUserWithEmailAddress('steven'); $steven->setRight('MissionsModule', MissionsModule::RIGHT_ACCESS_MISSIONS); $steven->save(); $dueStamp = DateTimeUtil::convertTimestampToDbFormatDateTime(time() + 10000); $mission = new Mission(); $mission->owner = $super; $mission->takenByUser = $steven; $mission->dueDateTime = $dueStamp; $mission->description = 'My test description'; $mission->reward = 'My test reward'; $mission->status = Mission::STATUS_AVAILABLE; $mission->files->add($fileModel); $everyoneGroup = Group::getByName(Group::EVERYONE_GROUP_NAME); $mission->addPermissions($everyoneGroup, Permission::READ_WRITE); $this->assertTrue($mission->save()); AllPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($mission, $everyoneGroup); $id = $mission->id; $mission->forget(); unset($mission); $mission = Mission::getById($id); $this->assertEquals('My test description', $mission->description); $this->assertEquals('My test reward', $mission->reward); $this->assertEquals(Mission::STATUS_AVAILABLE, $mission->status); $this->assertEquals($super, $mission->owner); $this->assertEquals($steven, $mission->takenByUser); $this->assertEquals(1, $mission->files->count()); $this->assertEquals($fileModel, $mission->files->offsetGet(0)); $this->assertEquals($dueStamp, $mission->dueDateTime); $this->assertTrue(MissionsUtil::hasUserReadMissionLatest($mission, $super)); $this->assertFalse(MissionsUtil::hasUserReadMissionLatest($mission, $steven)); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); ReadPermissionsOptimizationUtil::rebuild(); $everyoneGroup = Group::getByName(Group::EVERYONE_GROUP_NAME); $everyoneGroup->save(); $super = User::getByUsername('super'); $steven = UserTestHelper::createBasicUser('steven'); $mission = new Mission(); $mission->owner = $super; $mission->takenByUser = $steven; $mission->description = 'My test description'; $mission->reward = 'My test reward'; $mission->status = Mission::STATUS_AVAILABLE; $mission->addPermissions($everyoneGroup, Permission::READ_WRITE); assert($mission->save()); // Not Coding Standard ReadPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($mission, $everyoneGroup); }