/** * {@inheritdoc} */ public function finishView(FormView $view, FormInterface $form, array $options) { $permissionForm = $form->getParent(); if (!$permissionForm) { return; } $permissionsForm = $permissionForm->getParent(); if (!$permissionsForm) { return; } $privilegeForm = $permissionsForm->getParent(); if (!$privilegeForm) { return; } $privilegesForm = $privilegeForm->getParent(); if (!$privilegesForm) { return; } $roleForm = $privilegesForm->getParent(); if (!$roleForm) { return; } if (in_array($roleForm->getConfig()->getType()->getName(), [AccountUserRoleType::NAME, FrontendAccountUserRoleType::NAME])) { //uses on edit page for rendering preloaded string (role permission name) $view->vars['translation_prefix'] = $this->roleTranslationPrefixResolver->getPrefix(); } }
/** * @dataProvider getPrefixDataProvider * * @param UserInterface|string|null $loggedUser * @param string|null $expectedPrefix */ public function testGetPrefix($loggedUser, $expectedPrefix = null) { $this->securityFacade->expects($this->once())->method('getLoggedUser')->willReturn($loggedUser); if (!$expectedPrefix) { $this->setExpectedException('\\RuntimeException', 'This method must be called only for logged User or AccountUser'); } $this->assertEquals($expectedPrefix, $this->resolver->getPrefix()); }
/** * {@inheritdoc} */ public function buildView(FormView $view, FormInterface $form, array $options) { $parent = $form->getParent()->getParent()->getParent(); $parentData = $parent->getData(); if ($parentData instanceof AclPrivilege) { $view->vars['identity'] = $parentData->getIdentity()->getId(); $view->vars['level_label'] = AccessLevel::getAccessLevelName($form->getData()); } //uses on view page for rendering preloaded string (role permission name) $view->vars['translation_prefix'] = $this->roleTranslationPrefixResolver->getPrefix(); }
/** * @param bool $hasPermissionForm * @param bool $hasPermissionsForm * @param bool $hasPrivilegeForm * @param bool $hasPrivilegesForm * @param bool $hasRoleForm * @param string|null $roleFormName * @param string|null $expectedPrefix * @dataProvider finishViewDataProvider * * @SuppressWarnings(PHPMD.NPathComplexity) */ public function testFinishView($hasPermissionForm = false, $hasPermissionsForm = false, $hasPrivilegeForm = false, $hasPrivilegesForm = false, $hasRoleForm = false, $roleFormName = null, $expectedPrefix = null) { $this->roleTranslationPrefixResolver->expects($expectedPrefix ? $this->once() : $this->never())->method('getPrefix')->willReturn($expectedPrefix); $roleForm = null; if ($hasRoleForm) { $type = $this->getMock('Symfony\\Component\\Form\\ResolvedFormTypeInterface'); $type->expects($this->once())->method('getName')->willReturn($roleFormName); $formConfig = $this->getMock('Symfony\\Component\\Form\\FormConfigInterface'); $formConfig->expects($this->once())->method('getType')->willReturn($type); $roleForm = $this->getMock('Symfony\\Component\\Form\\FormInterface'); $roleForm->expects($this->once())->method('getConfig')->willReturn($formConfig); } $privilegesForm = null; if ($hasPrivilegesForm) { $privilegesForm = $this->getMock('Symfony\\Component\\Form\\FormInterface'); $privilegesForm->expects($this->once())->method('getParent')->willReturn($roleForm); } $privilegeForm = null; if ($hasPrivilegeForm) { $privilegeForm = $this->getMock('Symfony\\Component\\Form\\FormInterface'); $privilegeForm->expects($this->once())->method('getParent')->willReturn($privilegesForm); } $permissionsForm = null; if ($hasPermissionsForm) { $permissionsForm = $this->getMock('Symfony\\Component\\Form\\FormInterface'); $permissionsForm->expects($this->once())->method('getParent')->willReturn($privilegeForm); } $permissionForm = null; if ($hasPermissionForm) { $permissionForm = $this->getMock('Symfony\\Component\\Form\\FormInterface'); $permissionForm->expects($this->once())->method('getParent')->willReturn($permissionsForm); } /** @var FormInterface|\PHPUnit_Framework_MockObject_MockObject $form */ $form = $this->getMock('Symfony\\Component\\Form\\FormInterface'); $form->expects($this->once())->method('getParent')->willReturn($permissionForm); $formView = new FormView(); $this->extension->finishView($formView, $form, []); if ($expectedPrefix) { $this->assertArrayHasKey('translation_prefix', $formView->vars); $this->assertEquals($expectedPrefix, $formView->vars['translation_prefix']); } else { $this->assertArrayNotHasKey('translation_prefix', $formView->vars); } }