2015-01-29 16:56:58 +01:00
|
|
|
<?php
|
|
|
|
|
|
2015-03-29 10:53:10 +02:00
|
|
|
namespace Wallabag\ApiBundle\Controller;
|
2015-01-29 16:56:58 +01:00
|
|
|
|
2015-09-29 14:31:52 +02:00
|
|
|
use FOS\RestBundle\Controller\FOSRestController;
|
2016-11-03 17:29:16 +01:00
|
|
|
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
|
|
|
|
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
2016-11-03 18:01:25 +01:00
|
|
|
use Symfony\Component\Security\Core\Exception\AccessDeniedException;
|
2015-01-29 16:56:58 +01:00
|
|
|
|
2015-09-29 14:31:52 +02:00
|
|
|
class WallabagRestController extends FOSRestController
|
2015-01-29 16:56:58 +01:00
|
|
|
{
|
2016-03-07 15:00:03 +01:00
|
|
|
/**
|
2016-03-08 09:22:25 +01:00
|
|
|
* Retrieve version number.
|
|
|
|
|
*
|
|
|
|
|
* @ApiDoc()
|
2016-03-07 15:00:03 +01:00
|
|
|
*
|
2016-09-08 12:03:09 +02:00
|
|
|
* @return JsonResponse
|
2016-03-07 15:00:03 +01:00
|
|
|
*/
|
|
|
|
|
public function getVersionAction()
|
|
|
|
|
{
|
|
|
|
|
$version = $this->container->getParameter('wallabag_core.version');
|
|
|
|
|
$json = $this->get('serializer')->serialize($version, 'json');
|
2016-11-03 17:29:16 +01:00
|
|
|
|
2016-09-08 12:03:09 +02:00
|
|
|
return (new JsonResponse())->setJson($json);
|
2016-03-07 15:00:03 +01:00
|
|
|
}
|
2015-03-29 10:53:10 +02:00
|
|
|
|
2016-10-28 14:46:30 +02:00
|
|
|
protected function validateAuthentication()
|
2016-10-07 23:31:53 +02:00
|
|
|
{
|
2015-11-07 00:17:37 +01:00
|
|
|
if (false === $this->get('security.authorization_checker')->isGranted('IS_AUTHENTICATED_FULLY')) {
|
2015-09-29 14:57:46 +02:00
|
|
|
throw new AccessDeniedException();
|
2016-10-07 23:31:53 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-03-29 10:53:10 +02:00
|
|
|
/**
|
|
|
|
|
* Validate that the first id is equal to the second one.
|
2015-05-30 13:52:26 +02:00
|
|
|
* If not, throw exception. It means a user try to access information from an other user.
|
2015-03-29 10:53:10 +02:00
|
|
|
*
|
2015-05-30 13:52:26 +02:00
|
|
|
* @param int $requestUserId User id from the requested source
|
2015-03-29 10:53:10 +02:00
|
|
|
*/
|
2016-10-28 14:46:30 +02:00
|
|
|
protected function validateUserAccess($requestUserId)
|
2015-03-29 10:53:10 +02:00
|
|
|
{
|
2015-11-07 00:17:37 +01:00
|
|
|
$user = $this->get('security.token_storage')->getToken()->getUser();
|
2017-07-01 09:52:38 +02:00
|
|
|
if ($requestUserId !== $user->getId()) {
|
|
|
|
|
throw $this->createAccessDeniedException('Access forbidden. Entry user id: ' . $requestUserId . ', logged user id: ' . $user->getId());
|
2015-03-29 10:53:10 +02:00
|
|
|
}
|
|
|
|
|
}
|
2015-01-31 19:09:34 +01:00
|
|
|
}
|