function it_is_triggered_pre_delete(GenericEvent $event, CustomerInterface $customer, FlashBagInterface $flashBag, $session) { $event->getSubject()->willReturn($customer); $customer->getEmail()->willReturn('*****@*****.**'); $session->getFlashBag()->willReturn($flashBag); $flashBag->add("error", "sylius_demo.account.prevent_delete")->shouldBeCalled(); $event->stopPropagation()->shouldBeCalled(); $this->preDelete($event); }
/** * Check if the current user group is the default group. * * @param GenericEvent $event * * @throws \Exception */ protected function checkDefaultGroup(GenericEvent $event) { /** @var Group $group */ $group = $event->getSubject(); if (strtolower(User::GROUP_DEFAULT) === strtolower($group->getName())) { $event->stopPropagation(); throw new \Exception(sprintf('The default group "%s" can not be updated.', $group->getName())); } }
/** * @param GenericEvent $event */ public function preDelete(GenericEvent $event) { if (!($subject = $event->getSubject()) instanceof CustomerInterface) { throw new UnexpectedTypeException($subject, 'Sylius\\Component\\Core\\Model\\CustomerInterface'); } if ('*****@*****.**' === $subject->getEmail()) { $this->session->getFlashBag()->add("error", "sylius_demo.account.prevent_delete"); $event->stopPropagation(); } }
/** * @param GenericEvent $event * * @throws \InvalidArgumentException */ public function deleteUser(GenericEvent $event) { $user = $event->getSubject(); Assert::isInstanceOf($user, UserInterface::class); $token = $this->tokenStorage->getToken(); if (null !== $token && ($loggedUser = $token->getUser()) && $loggedUser->getId() === $user->getId()) { $event->stopPropagation(); $this->session->getBag('flashes')->add('error', 'Cannot remove currently logged in user.'); } }
/** * @param GenericEvent $event */ public function deleteUser(GenericEvent $event) { $user = $event->getSubject(); if (!$user instanceof UserInterface) { throw new UnexpectedTypeException($user, UserInterface::class); } if (($token = $this->tokenStorage->getToken()) && ($loggedUser = $token->getUser()) && $loggedUser->getId() === $user->getId()) { $event->stopPropagation(); $this->session->getBag('flashes')->add('error', 'Cannot remove currently logged in user.'); } }
function it_does_not_allow_to_delete_currently_logged_user(GenericEvent $event, UserInterface $userToBeDeleted, UserInterface $currentlyLoggedInUser, $tokenStorage, $flashBag, TokenInterface $token) { $event->getSubject()->willReturn($userToBeDeleted); $userToBeDeleted->getId()->willReturn(1); $tokenStorage->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); }
public function onBeforeDelete(Event $event) { if ($this->isDeletable === false) { /** @var \Dja\Db\Model\Model $model */ $model = $event->getSubject(); echo 'write is_deleted'; $model->is_deleted = true; $model->save(); $event->stopPropagation(); return false; } }