public onKernelView ( |
||
$event |
public function onKernelView(GetResponseForControllerResultEvent $event)
{
$request = $event->getRequest();
try {
RequestAttributesExtractor::extractAttributes($request);
} catch (RuntimeException $e) {
return;
}
$user = $event->getControllerResult();
if (!$user instanceof UserInterface || $request->isMethodSafe(false)) {
return;
}
switch ($request->getMethod()) {
case Request::METHOD_DELETE:
$this->userManager->deleteUser($user);
$event->setControllerResult(null);
break;
default:
$this->userManager->updateUser($user);
break;
}
}
public function testSafeMethod() { $request = new Request([], [], ['_api_resource_class' => User::class, '_api_item_operation_name' => 'put']); $manager = $this->prophesize(UserManagerInterface::class); $manager->deleteUser()->shouldNotBeCalled(); $manager->updateUser()->shouldNotBeCalled(); $event = $this->prophesize(GetResponseForControllerResultEvent::class); $event->getRequest()->willReturn($request)->shouldBeCalled(); $event->getControllerResult()->willReturn(new User()); $listener = new EventListener($manager->reveal()); $listener->onKernelView($event->reveal()); }