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); }
/** * @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.'); } }