private function voteAccess(DefinitionInterface $definition, $attribute) { if ($attribute === 'CRUDIFY_CREATE') { if ($definition->withCreate()) { return $this->defaultAccess; } else { return VoterInterface::ACCESS_DENIED; } } if ($attribute === 'CRUDIFY_UPDATE') { if ($definition->withUpdate()) { return $this->defaultAccess; } else { return VoterInterface::ACCESS_DENIED; } } if ($attribute === 'CRUDIFY_DELETE') { if ($definition->withDelete()) { return $this->defaultAccess; } else { return VoterInterface::ACCESS_DENIED; } } return $this->defaultAccess; }
function let(DefinitionInterface $definition, EntityManager $manager, ClassMetadata $metadata) { $entity = 'AcmeBundle:Test'; $definition->getName()->willReturn('test'); $definition->getEntityName()->willReturn($entity); $definition->getEntityManager()->willReturn($manager); $manager->getClassMetadata($entity)->willReturn($metadata); $metadata->getName()->willReturn($entity); }
/** * @param object $object * @return mixed * @throws UnsupportedEntityException */ public function getId(DefinitionInterface $definition, $object) { $metadata = $definition->getEntityManager()->getClassMetadata($definition->getEntityName()); $identity = $metadata->getIdentifierValues($object); if (count($identity) !== 1) { throw new UnsupportedEntityException("Entity '{$metadata->getName()}' must have exactly one identifier column"); } reset($identity); return current($identity); }
/** * @param string $action * @param DefinitionInterface $definition * @param object|null $object * @return string */ public function getLinkForAction($action, DefinitionInterface $definition, $object = null) { $parameters = ['mapping' => $definition->getName()]; if (is_object($object)) { $parameters['id'] = $this->identityResolver->getId($definition, $object); } elseif (is_int($object)) { $parameters['id'] = $object; } $route = "bravesheep_crudify.{$action}"; return $this->router->generate($route, $parameters); }
function let(RouterInterface $router, IdentityResolver $identityResolver, DefinitionInterface $definition, \stdClass $object) { $this->beConstructedWith($router, $identityResolver); $router->generate('bravesheep_crudify.index', Argument::withKey('mapping'))->will(function ($args) { return '/' . $args[1]['mapping'] . '/index'; }); $router->generate('bravesheep_crudify.new', Argument::withKey('mapping'))->will(function ($args) { return '/' . $args[1]['mapping'] . '/new'; }); $router->generate('bravesheep_crudify.create', Argument::withKey('mapping'))->will(function ($args) { return '/' . $args[1]['mapping'] . '/create'; }); $router->generate('bravesheep_crudify.edit', Argument::allOf(Argument::withKey('mapping'), Argument::withKey('id')))->will(function ($args) { return '/' . $args[1]['mapping'] . '/edit/' . $args[1]['id']; }); $router->generate('bravesheep_crudify.update', Argument::allOf(Argument::withKey('mapping'), Argument::withKey('id')))->will(function ($args) { return '/' . $args[1]['mapping'] . '/update/' . $args[1]['id']; }); $router->generate('bravesheep_crudify.delete', Argument::allOf(Argument::withKey('mapping'), Argument::withKey('id')))->will(function ($args) { return '/' . $args[1]['mapping'] . '/delete/' . $args[1]['id']; }); $definition->getName()->willReturn('test'); $identityResolver->getId($definition, $object)->willReturn(42); }
/** * @param DefinitionInterface $definition * @return CrudControllerInterface */ private function getController(DefinitionInterface $definition) { $controller = $definition->getController(); return $this->container->get('bravesheep_crudify.resolver.controller')->resolve($controller); }
function it_should_not_allow_delete_access_if_the_definition_denies(DefinitionInterface $definition, TokenInterface $token) { $definition->withDelete()->willReturn(false); $this->vote($token, $definition, ['CRUDIFY_DELETE'])->shouldReturn(VoterInterface::ACCESS_DENIED); }
/** * {@inheritdoc} */ public function indexAction(DefinitionInterface $definition, Request $request) { $query = $this->createSelectQuery($definition->getIndex()); $grid = $this->getGrid($query, $definition, $request); return $this->render($definition->getTemplates()->getIndex(), ['definition' => $definition, 'objects' => $grid]); }
/** * {@inheritdoc} */ public function retrieve(DefinitionInterface $definition, $id) { $repo = $definition->getEntityRepository(); return $repo->find($id); }
function it_should_retrieve_the_object_from_the_repository(DefinitionInterface $definition, EntityRepository $repo, \stdClass $object) { $definition->getEntityRepository()->willReturn($repo); $repo->find(10)->shouldBeCalled()->willReturn($object); $this->retrieve($definition, 10)->shouldReturn($object); }
public function createDeleteForm(DefinitionInterface $definition, $object) { $controller = $this->controllerResolver->resolve($definition->getController()); return $controller->createDeleteForm($definition, $object)->createView(); }
/** * Add a translated flash to the flashbag, using the translation domain from the definition. * @param DefinitionInterface $definition * @param string $type * @param string $message * @param array $vars */ protected function addTranslatedFlash(DefinitionInterface $definition, $type, $message, array $vars = []) { /** @var Translator $trans */ $trans = $this->get('translator'); $message = $trans->trans($message, $vars, $definition->getTranslationDomain()); /** @var Session $session */ $session = $this->get('session'); $session->getFlashBag()->add($type, $message); }