コード例 #1
0
 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);
 }
コード例 #2
0
 /**
  * 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()));
     }
 }
コード例 #3
0
 /**
  * @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();
     }
 }
コード例 #4
0
ファイル: UserDeleteListener.php プロジェクト: loic425/Sylius
 /**
  * @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.');
     }
 }
コード例 #5
0
 /**
  * @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.');
     }
 }
コード例 #6
0
 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);
 }
コード例 #7
0
 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;
     }
 }