예제 #1
0
 protected function setUp()
 {
     $this->doctrineHelper = $this->getMockBuilder('Oro\\Bundle\\EntityBundle\\ORM\\DoctrineHelper')->disableOriginalConstructor()->getMock();
     $this->doctrineHelper->expects($this->any())->method('isManageableEntity')->willReturn(true);
     $this->ownershipMetadataProvider = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Owner\\Metadata\\OwnershipMetadataProvider')->disableOriginalConstructor()->getMock();
     $this->businessUnitManager = $this->getMockBuilder('Oro\\Bundle\\OrganizationBundle\\Entity\\Manager\\BusinessUnitManager')->disableOriginalConstructor()->getMock();
     $this->businessUnitManager->expects($this->any())->method('getBusinessUnitIds')->will($this->returnValue(array(1, 2)));
     $organization = $this->getMockBuilder('Oro\\Bundle\\OrganizationBundle\\Entity\\Organization')->disableOriginalConstructor()->getMock();
     $this->organizations = array($organization);
     $businessUnit = $this->getMockBuilder('Oro\\Bundle\\OrganizationBundle\\Entity\\BusinessUnit')->disableOriginalConstructor()->getMock();
     $businessUnit->expects($this->any())->method('getOrganization')->will($this->returnValue($organization));
     $this->businessUnits = new ArrayCollection(array($businessUnit));
     $this->user = $this->getMockBuilder('Oro\\Bundle\\UserBundle\\Entity\\User')->disableOriginalConstructor()->getMock();
     $this->user->expects($this->any())->method('getId')->will($this->returnValue(1));
     $this->user->expects($this->any())->method('getBusinessUnits')->will($this->returnValue($this->businessUnits));
     $this->organization = new Organization();
     $this->organization->setId(1);
     $this->entityClassName = get_class($this->user);
     $this->securityFacade = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\SecurityFacade')->disableOriginalConstructor()->getMock();
     $config = $this->getMockBuilder('Symfony\\Component\\Form\\FormConfigInterface')->disableOriginalConstructor()->getMock();
     $config->expects($this->any())->method('getCompound')->will($this->returnValue(true));
     $config->expects($this->any())->method('getDataClass')->will($this->returnValue($this->entityClassName));
     $this->builder = $this->getMockBuilder('Symfony\\Component\\Form\\FormBuilder')->disableOriginalConstructor()->getMock();
     $this->builder->expects($this->any())->method('getFormConfig')->will($this->returnValue($config));
     $this->builder->expects($this->any())->method('getOption')->with('required')->will($this->returnValue(true));
     $this->fieldName = 'owner';
     $aclVoter = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Acl\\Voter\\AclVoter')->disableOriginalConstructor()->getMock();
     $treeProvider = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Owner\\OwnerTreeProvider')->disableOriginalConstructor()->getMock();
     $this->entityOwnerAccessor = $this->getMockBuilder('Oro\\Bundle\\SecurityBundle\\Owner\\EntityOwnerAccessor')->disableOriginalConstructor()->getMock();
     $this->entityOwnerAccessor->expects($this->any())->method('getOwner')->willReturnCallback(function ($entity) {
         return $entity->getOwner();
     });
     $this->extension = new OwnerFormExtension($this->doctrineHelper, $this->ownershipMetadataProvider, $this->businessUnitManager, $this->securityFacade, $aclVoter, $treeProvider, $this->entityOwnerAccessor);
 }
 public function preSetData()
 {
     $entityConfigId = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\Id\\EntityConfigId')->disableOriginalConstructor()->getMock();
     $user = new User();
     $user->setId(1);
     $organization = new Organization();
     $organization->setId(3);
     $userConfig = new Config($entityConfigId);
     $userConfig->setValues(["owner_type" => "USER", "owner_field_name" => "owner", "owner_column_name" => "owner_id", "organization_field_name" => "organization", "organization_column_name" => "organization_id"]);
     $buConfig = new Config($entityConfigId);
     $buConfig->setValues(["owner_type" => "BUSINESS_UNIT", "owner_field_name" => "owner", "owner_column_name" => "owner_id", "organization_field_name" => "organization", "organization_column_name" => "organization_id"]);
     $organizationConfig = new Config($entityConfigId);
     $organizationConfig->setValues(["owner_type" => "ORGANIZATION", "owner_field_name" => "owner", "owner_column_name" => "owner_id"]);
     return ['OwnershipType User with UsernamePasswordOrganizationToken' => [new UsernamePasswordOrganizationToken($user, 'admin', 'key', $organization), $userConfig, ['owner' => $user, 'organization' => $organization]], 'OwnershipType BusinessUnit with UsernamePasswordOrganizationToken' => [new UsernamePasswordOrganizationToken($user, 'admin', 'key', $organization), $buConfig, ['organization' => $organization]], 'OwnershipType Organization with UsernamePasswordOrganizationToken' => [new UsernamePasswordOrganizationToken($user, 'admin', 'key', $organization), $organizationConfig, ['owner' => $organization]], 'OwnershipType User with UsernamePasswordToken' => [new UsernamePasswordToken($user, 'admin', 'key'), $userConfig, ['owner' => $user]], 'OwnershipType BusinessUnit with UsernamePasswordToken' => [new UsernamePasswordToken($user, 'admin', 'key'), $buConfig, []], 'OwnershipType Organization with UsernamePasswordToken' => [new UsernamePasswordToken($user, 'admin', 'key'), $organizationConfig, []]];
 }
예제 #3
0
 /**
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  * @return array
  */
 public function dataProvider()
 {
     $organization1 = new Organization();
     $organization1->setId(1);
     $organization2 = new Organization();
     $organization2->setId(2);
     $bu11 = new BusinessUnit();
     $bu11->setId(1);
     $bu11->setOrganization($organization1);
     $bu22 = new BusinessUnit();
     $bu22->setId(2);
     $bu22->setOrganization($organization2);
     $newUser = new User();
     $newUser->setId(2);
     $newUser->setOrganizations(new ArrayCollection([$organization1]));
     $newUser->setBusinessUnits(new ArrayCollection([$bu11]));
     return ['BASIC_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::BASIC_LEVEL, $organization1, true], 'BASIC_LEVEL access level, another user' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::BASIC_LEVEL, $organization1, false], 'SYSTEM_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::SYSTEM_LEVEL, $organization1, true], 'SYSTEM_LEVEL access level, another user' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::SYSTEM_LEVEL, $organization1, true], 'GLOBAL_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::GLOBAL_LEVEL, $organization1, true], 'GLOBAL_LEVEL access level, another user, same org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::GLOBAL_LEVEL, $organization1, true], 'GLOBAL_LEVEL access level, another user, different org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::GLOBAL_LEVEL, $organization2, false], 'LOCAL_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::LOCAL_LEVEL, $organization1, true], 'LOCAL_LEVEL access level, another user, same org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::LOCAL_LEVEL, $organization1, true], 'LOCAL_LEVEL access level, another user, different org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::LOCAL_LEVEL, $organization2, false], 'DEEP_LEVEL access level, current user' => [$this->getCurrentUser(2, [$organization1], [$bu11]), $newUser, AccessLevel::DEEP_LEVEL, $organization1, true], 'DEEP_LEVEL access level, another user, same org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::DEEP_LEVEL, $organization1, true], 'DEEP_LEVEL access level, another user, different org' => [$this->getCurrentUser(1, [$organization1], [$bu11]), $newUser, AccessLevel::DEEP_LEVEL, $organization2, false]];
 }