for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace App\Controller;
use App\Translation\TranslatedResponseTrait;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
/**
* Class BaseController
* @package App\Controller
*/
abstract class BaseController extends Controller implements ControllerInterface
{
use TranslatedResponseTrait;
* @param $data
* @param int $status
* @param array $headers
* @param array $context
* @return JsonResponse
protected function response($data, int $status = 200, array $headers = [], array $context = []): JsonResponse
$contextWithRoles = $this->appendRolesToContextGroups($context);
$translatedContent = $this->translateResponse($data, $contextWithRoles);
return $this->json($translatedContent, $status, $headers, $context);
}
private function appendRolesToContextGroups(?array $context): array
if ($this->getUser() === null) return $context;
if ($context === null) {
return [
'groups' => $this->getUser()->getRoles(),
];
if (isset($context['groups'])) {
$context['groups'] = array_merge($context['groups'], $this->getUser()->getRoles());
} else {
$context['groups'] = $this->getUser()->getRoles();
return $context;