diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index dba0fad72..7b09a7d50 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -85,16 +85,6 @@ parameters:
count: 2
path: src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php
- -
- message: "#^Method Chill\\\\ActivityBundle\\\\Timeline\\\\TimelineActivityProvider\\:\\:getFromClausePerson\\(\\) invoked with 1 parameter, 0 required\\.$#"
- count: 1
- path: src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php
-
- -
- message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:buildQueryEntities\\(\\) invoked with 3 parameters, 2 required\\.$#"
- count: 1
- path: src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php
-
-
message: "#^Access to an undefined property Chill\\\\AsideActivityBundle\\\\Entity\\\\AsideActivityCategory\\:\\:\\$oldParent\\.$#"
count: 2
@@ -250,11 +240,6 @@ parameters:
count: 1
path: src/Bundle/ChillDocGeneratorBundle/Controller/DocGeneratorTemplateController.php
- -
- message: "#^Class Chill\\\\DocStoreBundle\\\\Entity\\\\DocumentCategory constructor invoked with 0 parameters, 2 required\\.$#"
- count: 1
- path: src/Bundle/ChillDocStoreBundle/Controller/DocumentCategoryController.php
-
-
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
count: 1
@@ -360,16 +345,6 @@ parameters:
count: 1
path: src/Bundle/ChillMainBundle/CRUD/Controller/AbstractCRUDController.php
- -
- message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\AbstractCRUDController\\:\\:getEntity\\(\\) invoked with 4 parameters, 3 required\\.$#"
- count: 3
- path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php
-
- -
- message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\ApiController\\:\\:entityPostAction\\(\\) invoked with 4 parameters, 3 required\\.$#"
- count: 1
- path: src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php
-
-
message: "#^Variable \\$entity in isset\\(\\) is never defined\\.$#"
count: 1
@@ -385,16 +360,6 @@ parameters:
count: 1
path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php
- -
- message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:buildQueryEntities\\(\\) invoked with 3 parameters, 2 required\\.$#"
- count: 2
- path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php
-
- -
- message: "#^Method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:onPreDelete\\(\\) invoked with 3 parameters, 2 required\\.$#"
- count: 1
- path: src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php
-
-
message: "#^Parameter \\$scope of method Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\CRUDController\\:\\:getReachableCenters\\(\\) has invalid type Chill\\\\MainBundle\\\\CRUD\\\\Controller\\\\Scope\\.$#"
count: 1
@@ -520,21 +485,6 @@ parameters:
count: 1
path: src/Bundle/ChillMainBundle/Controller/UserController.php
- -
- message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\UserController\\:\\:createAddLinkGroupCenterForm\\(\\) invoked with 1 parameter, 2 required\\.$#"
- count: 1
- path: src/Bundle/ChillMainBundle/Controller/UserController.php
-
- -
- message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\UserController\\:\\:createEditPasswordForm\\(\\) invoked with 2 parameters, 1 required\\.$#"
- count: 1
- path: src/Bundle/ChillMainBundle/Controller/UserController.php
-
- -
- message: "#^Method Chill\\\\MainBundle\\\\Controller\\\\UserController\\:\\:getDeleteLinkGroupCenterByUser\\(\\) invoked with 1 parameter, 2 required\\.$#"
- count: 1
- path: src/Bundle/ChillMainBundle/Controller/UserController.php
-
-
message: "#^Call to function in_array\\(\\) requires parameter \\#3 to be set\\.$#"
count: 2
@@ -720,11 +670,6 @@ parameters:
count: 1
path: src/Bundle/ChillMainBundle/Search/Entity/SearchUserApiProvider.php
- -
- message: "#^Method Chill\\\\MainBundle\\\\Search\\\\SearchApi\\:\\:buildUnionQuery\\(\\) invoked with 4 parameters, 3 required\\.$#"
- count: 1
- path: src/Bundle/ChillMainBundle/Search/SearchApi.php
-
-
message: "#^Access to an undefined property Chill\\\\MainBundle\\\\Search\\\\SearchApiResult\\:\\:\\$relevance\\.$#"
count: 2
@@ -750,11 +695,6 @@ parameters:
count: 2
path: src/Bundle/ChillMainBundle/Security/Authorization/AbstractChillVoter.php
- -
- message: "#^Method Chill\\\\MainBundle\\\\Security\\\\Authorization\\\\AuthorizationHelper\\:\\:userCanReachCenter\\(\\) invoked with 3 parameters, 2 required\\.$#"
- count: 1
- path: src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php
-
-
message: "#^Call to function in_array\\(\\) requires parameter \\#3 to be set\\.$#"
count: 2
@@ -945,11 +885,6 @@ parameters:
count: 1
path: src/Bundle/ChillPersonBundle/Entity/Person.php
- -
- message: "#^Method Chill\\\\PersonBundle\\\\Entity\\\\Person\\:\\:getCurrentPersonAddress\\(\\) invoked with 1 parameter, 0 required\\.$#"
- count: 1
- path: src/Bundle/ChillPersonBundle/Entity/Person.php
-
-
message: "#^Construct empty\\(\\) is not allowed\\. Use more strict comparison\\.$#"
count: 2
diff --git a/src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php b/src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php
index a1c6b6c65..fb0a5c45c 100644
--- a/src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php
+++ b/src/Bundle/ChillActivityBundle/Timeline/TimelineActivityProvider.php
@@ -1,94 +1,53 @@
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
+declare(strict_types=1);
namespace Chill\ActivityBundle\Timeline;
+use Chill\MainBundle\Entity\User;
+use Chill\MainBundle\Security\Authorization\AuthorizationHelperInterface;
use Chill\MainBundle\Timeline\TimelineProviderInterface;
use Chill\ActivityBundle\Repository\ActivityACLAwareRepository;
-use Doctrine\ORM\EntityManager;
-use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
+use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Role\Role;
-use Doctrine\ORM\Mapping\ClassMetadata;
use Chill\PersonBundle\Entity\Person;
-use Chill\MainBundle\Entity\Scope;
use Chill\ActivityBundle\Entity\Activity;
use Chill\MainBundle\Timeline\TimelineSingleQuery;
+use Symfony\Component\Security\Core\User\UserInterface;
-/**
- * Provide activity for inclusion in timeline
- *
-*/
class TimelineActivityProvider implements TimelineProviderInterface
{
-
- /**
- *
- * @var EntityManager
- */
- protected $em;
-
- /**
- *
- * @var AuthorizationHelper
- */
- protected $helper;
-
- /**
- *
- * @var \Chill\MainBundle\Entity\User
- */
- protected $user;
+ protected EntityManagerInterface $em;
+
+ protected AuthorizationHelperInterface $helper;
+
+ protected UserInterface $user;
protected ActivityACLAwareRepository $aclAwareRepository;
private const SUPPORTED_CONTEXTS = [ 'center', 'person'];
-
- /**
- * TimelineActivityProvider constructor.
- *
- * @param EntityManager $em
- * @param AuthorizationHelper $helper
- * @param TokenStorageInterface $storage
- */
+
public function __construct(
- EntityManager $em,
- AuthorizationHelper $helper,
+ EntityManagerInterface $em,
+ AuthorizationHelperInterface $helper,
TokenStorageInterface $storage,
ActivityACLAwareRepository $aclAwareRepository
- )
- {
+ ) {
$this->em = $em;
$this->helper = $helper;
$this->aclAwareRepository = $aclAwareRepository;
-
- if (!$storage->getToken()->getUser() instanceof \Chill\MainBundle\Entity\User)
+
+ if (!$storage->getToken()->getUser() instanceof User)
{
throw new \RuntimeException('A user should be authenticated !');
}
-
+
$this->user = $storage->getToken()->getUser();
}
-
+
/**
- *
+ *
* {@inheritDoc}
*/
public function fetchQuery($context, array $args)
@@ -97,23 +56,23 @@ class TimelineActivityProvider implements TimelineProviderInterface
return TimelineSingleQuery::fromArray($this->aclAwareRepository
->queryTimelineIndexer($context, $args));
}
-
+
$metadataActivity = $this->em->getClassMetadata(Activity::class);
[$where, $parameters] = $this->getWhereClauseForPerson($args['person']);
-
+
return TimelineSingleQuery::fromArray([
'id' => $metadataActivity->getTableName()
.'.'.$metadataActivity->getColumnName('id'),
'type' => 'activity',
'date' => $metadataActivity->getTableName()
.'.'.$metadataActivity->getColumnName('date'),
- 'FROM' => $this->getFromClausePerson($args['person']),
+ 'FROM' => $this->getFromClausePerson(),
'WHERE' => $where,
'parameters' => $parameters
]);
}
-
+
private function getWhereClauseForPerson(Person $person)
{
$parameters = [];
@@ -125,15 +84,15 @@ class TimelineActivityProvider implements TimelineProviderInterface
$whereClause = sprintf(' {activity.person_id} = ? AND {activity.scope_id} IN ({scopes_ids}) ');
$scopes_ids = [];
- // first parameter: activity.person_id
+ // first parameter: activity.person_id
$parameters[] = $person->getId();
- // loop on reachable scopes
+ // loop on reachable scopes
foreach ($reachableScopes as $scope) {
if (\in_array($scope->getId(), $scopes_ids)) {
continue;
}
- $scopes_ids[] = '?';
+ $scopes_ids[] = '?';
$parameters[] = $scope->getId();
}
@@ -151,47 +110,40 @@ class TimelineActivityProvider implements TimelineProviderInterface
$parameters
];
}
-
- private function getFromClausePerson()
+
+ private function getFromClausePerson(): string
{
$metadataActivity = $this->em->getClassMetadata(Activity::class);
$metadataPerson = $this->em->getClassMetadata(Person::class);
$associationMapping = $metadataActivity->getAssociationMapping('person');
-
- return $metadataActivity->getTableName().' JOIN '
- .$metadataPerson->getTableName().' ON '
- .$metadataPerson->getTableName().'.'.
- $associationMapping['joinColumns'][0]['referencedColumnName']
- .' = '
- .$associationMapping['joinColumns'][0]['name']
- ;
+
+ return sprintf(
+ "%s JOIN %s ON %s.%s = %s",
+ $metadataActivity->getTableName(),
+ $metadataPerson->getTableName(),
+ $metadataPerson->getTableName(),
+ $associationMapping['joinColumns'][0]['referencedColumnName'],
+ $associationMapping['joinColumns'][0]['name']
+ );
}
-
- /**
- *
- * {@inheritDoc}
- */
- public function getEntities(array $ids)
+
+ public function getEntities(array $ids): array
{
$activities = $this->em->getRepository(Activity::class)
->findBy(array('id' => $ids));
-
+
$result = array();
foreach($activities as $activity) {
$result[$activity->getId()] = $activity;
}
-
+
return $result;
}
- /**
- *
- * {@inheritDoc}
- */
- public function getEntityTemplate($entity, $context, array $args)
+ public function getEntityTemplate($entity, $context, array $args): array
{
$this->checkContext($context);
-
+
return [
'template' => 'ChillActivityBundle:Timeline:activity_person_context.html.twig',
'template_data' => [
@@ -201,26 +153,25 @@ class TimelineActivityProvider implements TimelineProviderInterface
];
}
- /**
- *
- * {@inheritDoc}
- */
- public function supportsType($type)
+ public function supportsType($type): bool
{
return $type === 'activity';
}
-
+
/**
- * check if the context is supported
- *
- * @param string $context
+ * Check if the context is supported.
+ *
* @throws \LogicException if the context is not supported
*/
- private function checkContext($context)
+ private function checkContext(string $context)
{
if (FALSE === \in_array($context, self::SUPPORTED_CONTEXTS)) {
- throw new \LogicException("The context '$context' is not "
- . "supported. Currently only 'person' is supported");
+ throw new \LogicException(
+ sprintf(
+ "The context '%s' is not supported. Currently only 'person' is supported",
+ $context
+ )
+ );
}
}
diff --git a/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php b/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php
index 3e3b38033..9e9964314 100644
--- a/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php
+++ b/src/Bundle/ChillAsideActivityBundle/src/Controller/AsideActivityController.php
@@ -15,8 +15,7 @@ use Doctrine\Common\Collections\Criteria;
final class AsideActivityController extends CRUDController
{
-
- private $categoryRepository;
+ private AsideActivityCategoryRepository $categoryRepository;
public function __construct(AsideActivityCategoryRepository $categoryRepository)
{
@@ -25,7 +24,7 @@ final class AsideActivityController extends CRUDController
protected function buildQueryEntities(string $action, Request $request, ?FilterOrderHelper $filterOrder = null)
{
- $qb = parent::buildQueryEntities($action, $request, $filterOrder);
+ $qb = parent::buildQueryEntities($action, $request);
if ('index' === $action) {
$qb->where($qb->expr()->eq('e.agent', ':user'));
diff --git a/src/Bundle/ChillDocStoreBundle/Controller/DocumentCategoryController.php b/src/Bundle/ChillDocStoreBundle/Controller/DocumentCategoryController.php
index 4d2d3246e..301487fd7 100644
--- a/src/Bundle/ChillDocStoreBundle/Controller/DocumentCategoryController.php
+++ b/src/Bundle/ChillDocStoreBundle/Controller/DocumentCategoryController.php
@@ -1,5 +1,7 @@
getDoctrine()->getManager();
- $categories = $em->getRepository("ChillDocStoreBundle:DocumentCategory")->findAll();
+ $categories = $em->getRepository(DocumentCategory::class)->findAll();
return $this->render(
'ChillDocStoreBundle:DocumentCategory:index.html.twig',
- ['document_categories' => $categories]);
+ [
+ 'document_categories' => $categories,
+ ]
+ );
}
/**
@@ -37,13 +40,10 @@ class DocumentCategoryController extends AbstractController
public function new(Request $request): Response
{
$em = $this->getDoctrine()->getManager();
- $documentCategory = new DocumentCategory();
- $documentCategory
- ->setBundleId('Chill\DocStoreBundle\ChillDocStoreBundle');
- $documentCategory
- ->setIdInsideBundle(
- $em->getRepository("ChillDocStoreBundle:DocumentCategory")
- ->nextIdInsideBundle());
+ $documentCategory = new DocumentCategory(
+ ChillDocStoreBundle::class,
+ $em->getRepository(DocumentCategory::class)->nextIdInsideBundle()
+ );
$documentCategory
->setDocumentClass(PersonDocument::class);
@@ -56,11 +56,10 @@ class DocumentCategoryController extends AbstractController
$em->flush();
return $this->redirectToRoute('document_category_index');
- } else {
- $documentCategory->setBundleId(
- 'Chill\DocStoreBundle\ChillDocStoreBundle');
}
+ $documentCategory->setBundleId(ChillDocStoreBundle::class);
+
return $this->render('ChillDocStoreBundle:DocumentCategory:new.html.twig', [
'document_category' => $documentCategory,
'form' => $form->createView(),
diff --git a/src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php b/src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php
index e3717f654..a2555bf81 100644
--- a/src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php
+++ b/src/Bundle/ChillMainBundle/CRUD/Controller/ApiController.php
@@ -1,5 +1,7 @@
getEntity($action, $id, $request, $_format);
-
+ $entity = $this->getEntity($action, $id, $request);
+
$postFetch = $this->onPostFetchEntity($action, $request, $entity, $_format);
-
+
if ($postFetch instanceof Response) {
return $postFetch;
}
-
+
$response = $this->checkACL($action, $request, $_format, $entity);
if ($response instanceof Response) {
return $response;
}
-
+
$response = $this->onPostCheckACL($action, $request, $_format, $entity);
if ($response instanceof Response) {
return $response;
@@ -86,7 +88,7 @@ class ApiController extends AbstractCRUDController
case Request::METHOD_PATCH:
return $this->entityPut('_entity', $request, $id, $_format);
case Request::METHOD_POST:
- return $this->entityPostAction('_entity', $request, $id, $_format);
+ return $this->entityPostAction('_entity', $request, $id);
case Request::METHOD_DELETE:
return $this->entityDelete('_entity', $request, $id, $_format);
default:
@@ -112,9 +114,9 @@ class ApiController extends AbstractCRUDController
} catch (NotEncodableValueException $e) {
throw new BadRequestException("invalid json", 400, $e);
}
-
+
$errors = $this->validate($action, $request, $_format, $entity);
-
+
$response = $this->onAfterValidation($action, $request, $_format, $entity, $errors);
if ($response instanceof Response) {
return $response;
@@ -126,12 +128,12 @@ class ApiController extends AbstractCRUDController
return $response;
}
-
+
$response = $this->checkACL($action, $request, $_format, $entity);
if ($response instanceof Response) {
return $response;
}
-
+
$response = $this->onPostCheckACL($action, $request, $_format, $entity);
if ($response instanceof Response) {
return $response;
@@ -148,33 +150,33 @@ class ApiController extends AbstractCRUDController
if ($response instanceof Response) {
return $response;
}
-
+
return $this->json(
$entity,
Response::HTTP_OK,
- [],
+ [],
$this->getContextForSerializationPostAlter($action, $request, $_format, $entity)
);
}
public function entityPut($action, Request $request, $id, string $_format): Response
{
- $entity = $this->getEntity($action, $id, $request, $_format);
-
+ $entity = $this->getEntity($action, $id, $request);
+
$postFetch = $this->onPostFetchEntity($action, $request, $entity, $_format);
if ($postFetch instanceof Response) {
return $postFetch;
}
-
+
if (NULL === $entity) {
throw $this->createNotFoundException(sprintf("The %s with id %s "
. "is not found", $this->getCrudName(), $id));
}
-
+
$response = $this->checkACL($action, $request, $_format, $entity);
if ($response instanceof Response) {
return $response;
}
-
+
$response = $this->onPostCheckACL($action, $request, $_format, $entity);
if ($response instanceof Response) {
return $response;
@@ -184,7 +186,7 @@ class ApiController extends AbstractCRUDController
if ($response instanceof Response) {
return $response;
}
-
+
try {
$entity = $this->deserialize($action, $request, $_format, $entity);
} catch (NotEncodableValueException $e) {
@@ -215,13 +217,13 @@ class ApiController extends AbstractCRUDController
return $this->json(
$entity,
Response::HTTP_OK,
- [],
+ [],
$this->getContextForSerializationPostAlter($action, $request, $_format, $entity)
);
}
public function entityDelete($action, Request $request, $id, string $_format): Response
{
- $entity = $this->getEntity($action, $id, $request, $_format);
+ $entity = $this->getEntity($action, $id, $request);
if (NULL === $entity) {
throw $this->createNotFoundException(sprintf("The %s with id %s "
@@ -287,7 +289,7 @@ class ApiController extends AbstractCRUDController
protected function validate(string $action, Request $request, string $_format, $entity, array $more = []): ConstraintViolationListInterface
{
$validationGroups = $this->getValidationGroups($action, $request, $_format, $entity);
-
+
return $this->getValidator()->validate($entity, null, $validationGroups);
}
@@ -309,7 +311,7 @@ class ApiController extends AbstractCRUDController
return $this->getSerializer()->deserialize($request->getContent(), $this->getEntityClass(), $_format, $context);
}
-
+
/**
* Base action for indexing entities
@@ -327,11 +329,11 @@ class ApiController extends AbstractCRUDController
/**
* Build an index page.
- *
+ *
* Some steps may be overriden during this process of rendering.
- *
+ *
* This method:
- *
+ *
* 1. Launch `onPreIndex`
* x. check acl. If it does return a response instance, return it
* x. launch `onPostCheckACL`. If it does return a response instance, return it
@@ -342,7 +344,7 @@ class ApiController extends AbstractCRUDController
* x. fetch the results, using `getQueryResult`
* x. Launch `onPostIndexFetchQuery`. If it does return a response instance, return it
* 4. Serialize the entities in a Collection, using `SerializeCollection`
- *
+ *
* @param string $action
* @param Request $request
* @return type
@@ -350,50 +352,50 @@ class ApiController extends AbstractCRUDController
protected function indexApiAction($action, Request $request, $_format)
{
$this->onPreIndex($action, $request, $_format);
-
+
$response = $this->checkACL($action, $request, $_format);
if ($response instanceof Response) {
return $response;
}
-
+
if (!isset($entity)) {
$entity = '';
}
-
+
$response = $this->onPostCheckACL($action, $request, $_format, $entity);
if ($response instanceof Response) {
return $response;
}
-
+
$totalItems = $this->countEntities($action, $request, $_format);
$paginator = $this->getPaginatorFactory()->create($totalItems);
-
- $response = $this->onPreIndexBuildQuery($action, $request, $_format, $totalItems,
+
+ $response = $this->onPreIndexBuildQuery($action, $request, $_format, $totalItems,
$paginator);
-
+
if ($response instanceof Response) {
return $response;
}
-
+
$query = $this->queryEntities($action, $request, $_format, $paginator);
-
- $response = $this->onPostIndexBuildQuery($action, $request, $_format, $totalItems,
+
+ $response = $this->onPostIndexBuildQuery($action, $request, $_format, $totalItems,
$paginator, $query);
-
+
if ($response instanceof Response) {
return $response;
}
-
+
$entities = $this->getQueryResult($action, $request, $_format, $totalItems, $paginator, $query);
-
- $response = $this->onPostIndexFetchQuery($action, $request, $_format, $totalItems,
+
+ $response = $this->onPostIndexFetchQuery($action, $request, $_format, $totalItems,
$paginator, $entities);
-
+
if ($response instanceof Response) {
return $response;
}
-
- return $this->serializeCollection($action, $request, $_format, $paginator, $entities);
+
+ return $this->serializeCollection($action, $request, $_format, $paginator, $entities);
}
/**
@@ -402,7 +404,7 @@ class ApiController extends AbstractCRUDController
* This method:
*
* 1. Fetch the base entity (throw 404 if not found)
- * 2. checkACL,
+ * 2. checkACL,
* 3. run onPostCheckACL, return response if any,
* 4. deserialize posted data into the entity given by $postedDataType, with the context in $postedDataContext
* 5. run 'add+$property' for POST method, or 'remove+$property' for DELETE method
@@ -410,7 +412,7 @@ class ApiController extends AbstractCRUDController
* 7. run onAfterValidation
* 8. if errors, return a 422 response with errors
* 9. if $forcePersist === true, persist the entity
- * 10. flush the data
+ * 10. flush the data
* 11. run onAfterFlush
* 12. return a 202 response for DELETE with empty body, or HTTP 200 for post with serialized posted entity
*
@@ -425,7 +427,7 @@ class ApiController extends AbstractCRUDController
* @throw BadRequestException if unable to deserialize the posted data
* @throw BadRequestException if the method is not POST or DELETE
*
- */
+ */
protected function addRemoveSomething(string $action, $id, Request $request, string $_format, string $property, string $postedDataType, array $postedDataContext = [], bool $forcePersist = false): Response
{
$entity = $this->getEntity($action, $id, $request);
@@ -500,14 +502,14 @@ class ApiController extends AbstractCRUDController
return $this->json(
$postedData,
Response::HTTP_OK,
- [],
+ [],
$this->getContextForSerializationPostAlter($action, $request, $_format, $entity, [$postedData])
);
}
throw new \Exception('Unable to handle such request method.');
}
-
+
/**
* Serialize collections
*
@@ -520,7 +522,7 @@ class ApiController extends AbstractCRUDController
return $this->json($model, Response::HTTP_OK, [], $context);
}
-
+
protected function getContextForSerialization(string $action, Request $request, string $_format, $entity): array
{
@@ -537,7 +539,7 @@ class ApiController extends AbstractCRUDController
}
/**
- * Get the context for serialization post alter query (in case of
+ * Get the context for serialization post alter query (in case of
* PATCH, PUT, or POST method)
*
* This is called **after** the entity was altered.
@@ -565,7 +567,7 @@ class ApiController extends AbstractCRUDController
throw new \RuntimeException(sprintf("the config does not have any role for the ".
"method %s nor a global role for the whole action. Add those to your ".
"configuration or override the required method", $request->getMethod()));
-
+
}
protected function getSerializer(): SerializerInterface
diff --git a/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php b/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php
index 3f4fb8414..762654fbb 100644
--- a/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php
+++ b/src/Bundle/ChillMainBundle/CRUD/Controller/CRUDController.php
@@ -52,7 +52,7 @@ class CRUDController extends AbstractController
*/
protected function deleteAction(string $action, Request $request, $id, $formClass = null): Response
{
- $this->onPreDelete($action, $request, $id);
+ $this->onPreDelete($action, $request);
$entity = $this->getEntity($action, $id, $request);
@@ -311,11 +311,12 @@ class CRUDController extends AbstractController
*/
protected function buildQueryEntities(string $action, Request $request)
{
- $query = $this->getDoctrine()->getManager()
+ $query = $this
+ ->getDoctrine()
+ ->getManager()
->createQueryBuilder()
->select('e')
- ->from($this->getEntityClass(), 'e')
- ;
+ ->from($this->getEntityClass(), 'e');
$this->customizeQuery($action, $request, $query);
@@ -340,7 +341,7 @@ class CRUDController extends AbstractController
*/
protected function queryEntities(string $action, Request $request, PaginatorInterface $paginator, ?FilterOrderHelper $filterOrder = null)
{
- $query = $this->buildQueryEntities($action, $request, $filterOrder)
+ $query = $this->buildQueryEntities($action, $request)
->setFirstResult($paginator->getCurrentPage()->getFirstItemNumber())
->setMaxResults($paginator->getItemsPerPage());
@@ -389,7 +390,7 @@ class CRUDController extends AbstractController
*/
protected function countEntities(string $action, Request $request, ?FilterOrderHelper $filterOrder = null): int
{
- return $this->buildQueryEntities($action, $request, $filterOrder)
+ return $this->buildQueryEntities($action, $request)
->select('COUNT(e)')
->getQuery()
->getSingleScalarResult()
diff --git a/src/Bundle/ChillMainBundle/Controller/UserController.php b/src/Bundle/ChillMainBundle/Controller/UserController.php
index 735546eba..bb8203011 100644
--- a/src/Bundle/ChillMainBundle/Controller/UserController.php
+++ b/src/Bundle/ChillMainBundle/Controller/UserController.php
@@ -1,5 +1,7 @@
createEditPasswordForm($user, $request);
+ $editForm = $this->createEditPasswordForm($user);
$editForm->handleRequest($request);
if ($editForm->isSubmitted() && $editForm->isValid()) {
@@ -208,7 +194,7 @@ class UserController extends CRUDController
* @Route("/{_locale}/admin/main/user/{uid}/add_link_groupcenter",
* name="admin_user_add_groupcenter")
*/
- public function addLinkGroupCenterAction(Request $request, $uid): RedirectResponse
+ public function addLinkGroupCenterAction(Request $request, $uid): Response
{
$em = $this->getDoctrine()->getManager();
@@ -238,23 +224,22 @@ class UserController extends CRUDController
return $this->redirect($this->generateUrl('chill_crud_admin_user_edit',
\array_merge(['id' => $uid], $returnPathParams)));
- } else {
- foreach($this->validator->validate($user) as $error)
+ }
+
+ foreach($this->validator->validate($user) as $error) {
$this->addFlash('error', $error->getMessage());
}
}
- return $this->render('@ChillMain/User/edit.html.twig', array(
+ return $this->render('@ChillMain/User/edit.html.twig', [
'entity' => $user,
'edit_form' => $this->createEditForm($user)->createView(),
- 'add_groupcenter_form' => $this->createAddLinkGroupCenterForm($user)->createView(),
+ 'add_groupcenter_form' => $this->createAddLinkGroupCenterForm($user, $request)->createView(),
'delete_groupcenter_form' => array_map(
- function(\Symfony\Component\Form\Form $form) {
- return $form->createView();
-
- },
- iterator_to_array($this->getDeleteLinkGroupCenterByUser($user), true))
- ));
+ static fn(Form $form) => $form->createView(),
+ iterator_to_array($this->getDeleteLinkGroupCenterByUser($user, $request), true)
+ )
+ ]);
}
private function getPersistedGroupCenter(GroupCenter $groupCenter)
@@ -279,10 +264,8 @@ class UserController extends CRUDController
* Creates a form to delete a link to a GroupCenter
*
* @param mixed $permissionsGroup The entity id
- *
- * @return \Symfony\Component\Form\Form The form
*/
- private function createDeleteLinkGroupCenterForm(User $user, GroupCenter $groupCenter, $request)
+ private function createDeleteLinkGroupCenterForm(User $user, GroupCenter $groupCenter, $request): FormInterface
{
$returnPathParams = $request->query->has('returnPath') ? ['returnPath' => $request->query->get('returnPath')] : [];
@@ -291,39 +274,29 @@ class UserController extends CRUDController
array_merge($returnPathParams, ['uid' => $user->getId(), 'gcid' => $groupCenter->getId()])))
->setMethod('DELETE')
->add('submit', SubmitType::class, array('label' => 'Delete'))
- ->getForm()
- ;
+ ->getForm();
}
/**
- * create a form to add a link to a groupcenter
- *
- * @param User $user
- * @return \Symfony\Component\Form\Form
+ * Create a form to add a link to a groupcenter.
*/
- private function createAddLinkGroupCenterForm(User $user, Request $request)
+ private function createAddLinkGroupCenterForm(User $user, Request $request): FormInterface
{
$returnPathParams = $request->query->has('returnPath') ? ['returnPath' => $request->query->get('returnPath')] : [];
return $this->createFormBuilder()
- ->setAction($this->generateUrl('admin_user_add_groupcenter',
- array_merge($returnPathParams, ['uid' => $user->getId()])))
- ->setMethod('POST')
- ->add(self::FORM_GROUP_CENTER_COMPOSED, ComposedGroupCenterType::class)
- ->add('submit', SubmitType::class, array('label' => 'Add a new groupCenter'))
- ->getForm()
- ;
+ ->setAction($this->generateUrl('admin_user_add_groupcenter',
+ array_merge($returnPathParams, ['uid' => $user->getId()])))
+ ->setMethod('POST')
+ ->add(self::FORM_GROUP_CENTER_COMPOSED, ComposedGroupCenterType::class)
+ ->add('submit', SubmitType::class, array('label' => 'Add a new groupCenter'))
+ ->getForm();
}
- /**
- *
- * @param User $user
- */
private function getDeleteLinkGroupCenterByUser(User $user, Request $request)
{
foreach ($user->getGroupCenters() as $groupCenter) {
- yield $groupCenter->getId() => $this
- ->createDeleteLinkGroupCenterForm($user, $groupCenter, $request);
+ yield $groupCenter->getId() => $this->createDeleteLinkGroupCenterForm($user, $groupCenter, $request);
}
}
}
diff --git a/src/Bundle/ChillMainBundle/Search/SearchApi.php b/src/Bundle/ChillMainBundle/Search/SearchApi.php
index 877f1c330..30ecb8d3d 100644
--- a/src/Bundle/ChillMainBundle/Search/SearchApi.php
+++ b/src/Bundle/ChillMainBundle/Search/SearchApi.php
@@ -1,5 +1,7 @@
em = $em;
$this->providers[] = $searchPerson;
$this->providers[] = $thirdPartyApiSearch;
@@ -126,7 +125,7 @@ class SearchApi
private function fetchRawResult($queries, $types, $parameters, $paginator): array
{
- list($union, $parameters) = $this->buildUnionQuery($queries, $types, $parameters, $paginator);
+ list($union, $parameters) = $this->buildUnionQuery($queries, $types, $parameters);
$rsm = new ResultSetMappingBuilder($this->em);
$rsm->addScalarResult('key', 'key', Types::STRING)
->addScalarResult('metadata', 'metadata', Types::JSON)
diff --git a/src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php b/src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php
index 03adbdbc9..53ee73216 100644
--- a/src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php
+++ b/src/Bundle/ChillMainBundle/Security/Authorization/AuthorizationHelper.php
@@ -1,21 +1,6 @@
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
+declare(strict_types=1);
namespace Chill\MainBundle\Security\Authorization;
@@ -43,7 +28,6 @@ use Chill\MainBundle\Entity\RoleScope;
* Helper for authorizations.
*
* Provides methods for user and entities information.
- *
*/
class AuthorizationHelper implements AuthorizationHelperInterface
{
@@ -74,11 +58,7 @@ class AuthorizationHelper implements AuthorizationHelperInterface
/**
* Determines if a user is active on this center
*
- * If
- *
- * @param User $user
* @param Center|Center[] $center May be an array of center
- * @return bool
*/
public function userCanReachCenter(User $user, $center): bool
{
@@ -89,7 +69,9 @@ class AuthorizationHelper implements AuthorizationHelperInterface
}
}
return false;
- } elseif ($center instanceof Center) {
+ }
+
+ if ($center instanceof Center) {
foreach ($user->getGroupCenters() as $groupCenter) {
if ($center->getId() === $groupCenter->getCenter()->getId()) {
return true;
@@ -99,12 +81,16 @@ class AuthorizationHelper implements AuthorizationHelperInterface
return false;
}
- throw new \UnexpectedValueException(sprintf("The entity given is not an ".
- "instance of %s, %s given", Center::class, get_class($center)));
+ throw new \UnexpectedValueException(
+ sprintf(
+ 'The entity given is not an instance of %s, %s given',
+ Center::class,
+ get_class($center)
+ )
+ );
}
/**
- *
* Determines if the user has access to the given entity.
*
* if the entity implements Chill\MainBundle\Entity\HasScopeInterface,
@@ -243,7 +229,7 @@ class AuthorizationHelper implements AuthorizationHelperInterface
}
foreach ($centers as $center) {
- if ($this->userCanReachCenter($user, $center, $role)) {
+ if ($this->userCanReachCenter($user, $center)) {
$results[] = $center;
}
}
diff --git a/src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php b/src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php
index 99bac1e5a..9b73fa817 100644
--- a/src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php
+++ b/src/Bundle/ChillPersonBundle/Command/ImportPeopleFromCSVCommand.php
@@ -494,6 +494,7 @@ EOF
$openingDateString = trim($row[array_search('opening_date', $headers)]);
$openingDate = $this->processDate($openingDateString, $this->input->getOption('opening_date_format'));
+ // @TODO: Fix the constructor parameter, $openingDate does not exists.
$person = $openingDate instanceof \DateTime ? new Person($openingDate) : new Person();
// add the center
$center = $this->getCenter($row, $headers);
diff --git a/src/Bundle/ChillPersonBundle/Entity/Person.php b/src/Bundle/ChillPersonBundle/Entity/Person.php
index 5ea7aaf00..e17bd5ceb 100644
--- a/src/Bundle/ChillPersonBundle/Entity/Person.php
+++ b/src/Bundle/ChillPersonBundle/Entity/Person.php
@@ -1,26 +1,8 @@
,
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
+namespace Chill\PersonBundle\Entity;
use ArrayIterator;
use Chill\MainBundle\Doctrine\Model\TrackCreationInterface;
@@ -1330,7 +1312,7 @@ class Person implements HasCenterInterface, TrackCreationInterface, TrackUpdateI
*/
public function getLastAddress(DateTime $from = null)
{
- return $this->getCurrentPersonAddress($from);
+ return $this->getCurrentPersonAddress();
}
/**