/**
  * @param ResourceEvent $event
  */
 public function preRegister(ResourceEvent $event)
 {
     $item = $event->getSubject();
     /** @var Store $store */
     $store = $this->factory->createNew();
     $store->setName($item->getEmail());
     $store->setCode($item->getEmail());
     $store->setEnabled(true);
     $item->getUser()->setStore($store);
 }
 function it_does_not_allow_to_delete_currently_logged_user(ResourceEvent $event, UserInterface $userToBeDeleted, UserInterface $currentlyLoggedInUser, $securityContext, $flashBag, TokenInterface $token)
 {
     $event->getSubject()->willReturn($userToBeDeleted);
     $userToBeDeleted->getId()->willReturn(1);
     $securityContext->getToken()->willReturn($token);
     $currentlyLoggedInUser->getId()->willReturn(1);
     $token->getUser()->willReturn($currentlyLoggedInUser);
     $event->stopPropagation()->shouldBeCalled();
     $flashBag->add('error', 'Cannot remove currently logged in user.')->shouldBeCalled();
     $this->deleteUser($event);
 }
예제 #3
0
 /**
  * Prevent channel deletion if no more channels enabled.
  *
  * @param ResourceEvent $event
  */
 public function onChannelPreDelete(ResourceEvent $event)
 {
     $channel = $event->getSubject();
     if (!$channel instanceof ChannelInterface) {
         throw new UnexpectedTypeException($channel, ChannelInterface::class);
     }
     $results = $this->channelRepository->findBy(array('enabled' => true));
     if (!$results || count($results) === 1 && current($results) === $channel) {
         $event->stop('error.at_least_one');
     }
 }
예제 #4
0
 /**
  * @param ResourceEvent $event
  */
 public function deleteUser(ResourceEvent $event)
 {
     $user = $event->getSubject();
     if (!$user instanceof UserInterface) {
         throw new UnexpectedTypeException($user, UserInterface::class);
     }
     if (($token = $this->securityContext->getToken()) && ($loggedUser = $token->getUser()) && $loggedUser->getId() === $user->getId()) {
         $event->stopPropagation();
         $this->session->getBag('flashes')->add('error', 'Cannot remove currently logged in user.');
     }
 }
 /**
  * {@inheritdoc}
  */
 public function postRemove(ResourceEvent $event)
 {
     $object = $event->getSubject();
     if (!$object instanceof StaticContent) {
         return;
     }
     $prefix = $this->container->getParameter('cmf_routing.dynamic.persistence.phpcr.route_basepath');
     $path = sprintf('%s/%s', $prefix, $object->getName());
     $dm = $this->container->get('sylius.manager.route');
     if ($route = $dm->find(null, $path)) {
         $dm->remove($route);
         $dm->flush($route);
     }
 }
예제 #6
0
 public function onPreUpdate(ResourceEvent $event)
 {
     /** @var $category Category */
     $category = $event->getSubject();
     $this->setCollection($category);
 }