public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = User::getByUsername('super'); SecurityTestHelper::createUsers(); SecurityTestHelper::createGroups(); SecurityTestHelper::createAccounts(); SecurityTestHelper::createRoles(); $everyone = Group::getByName('Everyone'); $saved = $everyone->save(); assert('$saved'); // Not Coding Standard //Add contacts to help test that the rebuild is working correctly $contact = ContactTestHelper::createContactByNameForOwner('jason', Yii::app()->user->userModel); $contact->addPermissions(User::getByUsername('betty'), Permission::READ); $contact->addPermissions(Group::getByName('Support Staff'), Permission::READ); $saved = $contact->save(); assert('$saved'); // Not Coding Standard ReadPermissionsOptimizationUtil::rebuild(); assert('self::getAccountMungeRowCount() == 0'); // Not Coding Standard }
public function tearDown() { ReadPermissionsOptimizationUtil::rebuild(); assert('self::getAccountMungeRowCount() == 0'); // Not Coding Standard RedBeanModel::forgetAll(); self::assertEverythingHasBeenSetBackToHowItStarted(); //Teardown comes after so that the Yii::app()->user->userModel is still in tact since the rebuild //requires it. parent::tearDown(); }
/** * @depends testMakeBySecurableItem */ public function testResolveExplicitReadWriteModelPermissions() { Yii::app()->user->userModel = User::getByUsername('super'); $accounts = Account::getByName('aTestAccount'); $this->assertEquals(1, count($accounts)); $account = $accounts[0]; $accountId = $account->id; $group4 = Group::getByName('Group4'); $group3 = Group::getByName('Group3'); $group2 = Group::getByName('Group2'); $explicitReadWriteModelPermissions = new ExplicitReadWriteModelPermissions(); $explicitReadWriteModelPermissions->addReadWritePermitableToRemove($group3); $explicitReadWriteModelPermissions->addReadWritePermitable($group4); ExplicitReadWriteModelPermissionsUtil::resolveExplicitReadWriteModelPermissions($account, $explicitReadWriteModelPermissions); $account->forget(); $explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::makeBySecurableItem(Account::getById($accountId)); $readWritePermitables = $explicitReadWriteModelPermissions->getReadWritePermitables(); $readOnlyPermitables = $explicitReadWriteModelPermissions->getReadOnlyPermitables(); $this->assertEquals(2, count($readWritePermitables)); $this->assertEquals(0, count($readOnlyPermitables)); $this->assertEquals($group2, $readWritePermitables[$group2->getClassId('Permitable')]); $this->assertEquals($group4, $readWritePermitables[$group4->getClassId('Permitable')]); //Test adding group4 again. The _read count should be the same $account = Account::getById($accountId); $sanitizedData = array(); $sanitizedData['explicitReadWriteModelPermissions'] = array('type' => ExplicitReadWriteModelPermissionsUtil::MIXED_TYPE_NONEVERYONE_GROUP, 'nonEveryoneGroup' => $group4->id); $explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::resolveByPostDataAndModelThenMake($sanitizedData, $account); ExplicitReadWriteModelPermissionsUtil::resolveExplicitReadWriteModelPermissions($account, $explicitReadWriteModelPermissions); $this->assertEquals(array(array('G' . $group4->id, 1)), AccountReadPermissionsOptimizationBaseTest::getAccountMungeRows($account)); }