Minor: Format code

pull/5156/head
Angel Fernando Quiroz Campos 2 years ago
parent 8ca1eb07f4
commit a893e5d683
  1. 6
      src/CoreBundle/Component/Utils/ChamiloApi.php
  2. 3
      src/CoreBundle/Controller/Api/CLinkDetailsController.php
  3. 12
      src/CoreBundle/Controller/Api/CheckCLinkAction.php
  4. 2
      src/CoreBundle/Controller/Api/CreateCLinkAction.php
  5. 2
      src/CoreBundle/Controller/Api/UpdateCLinkAction.php
  6. 2
      src/CoreBundle/Controller/Api/UserSkillsController.php
  7. 2
      src/CoreBundle/Controller/ResetPasswordController.php
  8. 9
      src/CoreBundle/Controller/ResourceController.php
  9. 33
      src/CoreBundle/Controller/SocialController.php
  10. 2
      src/CoreBundle/DataFixtures/AccessGroupFixtures.php
  11. 2
      src/CoreBundle/DataFixtures/AccessUserFixtures.php
  12. 2
      src/CoreBundle/DataFixtures/AccessUserUrlFixtures.php
  13. 2
      src/CoreBundle/DataFixtures/PageFixtures.php
  14. 2
      src/CoreBundle/DataFixtures/TicketFixtures.php
  15. 4
      src/CoreBundle/DataProvider/Extension/CCalendarEventExtension.php
  16. 2
      src/CoreBundle/DataProvider/Extension/CDocumentExtension.php
  17. 2
      src/CoreBundle/DataProvider/Extension/CStudentPublicationExtension.php
  18. 2
      src/CoreBundle/DataProvider/Extension/CToolExtension.php
  19. 2
      src/CoreBundle/DataProvider/Extension/CToolIntroExtension.php
  20. 2
      src/CoreBundle/DataProvider/Extension/CourseExtension.php
  21. 2
      src/CoreBundle/DataProvider/Extension/CourseRelUserExtension.php
  22. 4
      src/CoreBundle/DataProvider/Extension/MessageExtension.php
  23. 2
      src/CoreBundle/DataProvider/Extension/MessageRelUserExtension.php
  24. 2
      src/CoreBundle/DataProvider/Extension/MessageTagExtension.php
  25. 4
      src/CoreBundle/DataProvider/Extension/PageExtension.php
  26. 2
      src/CoreBundle/DataProvider/Extension/PersonalFileExtension.php
  27. 2
      src/CoreBundle/DataProvider/Extension/SessionRelUserExtension.php
  28. 2
      src/CoreBundle/DataProvider/Extension/SocialPostExtension.php
  29. 2
      src/CoreBundle/DataProvider/Extension/TrackEExerciseExtension.php
  30. 4
      src/CoreBundle/DataProvider/UserItemDataProvider.php
  31. 3
      src/CoreBundle/DependencyInjection/ChamiloCoreExtension.php
  32. 26
      src/CoreBundle/Entity/AbstractResource.php
  33. 2
      src/CoreBundle/Entity/Asset.php
  34. 2
      src/CoreBundle/Entity/BranchSync.php
  35. 2
      src/CoreBundle/Entity/PersonalFile.php
  36. 6
      src/CoreBundle/Entity/Portfolio.php
  37. 2
      src/CoreBundle/Entity/PortfolioCategory.php
  38. 2
      src/CoreBundle/Entity/ResourceFile.php
  39. 10
      src/CoreBundle/Entity/ResourceLink.php
  40. 6
      src/CoreBundle/Entity/ResourceNode.php
  41. 10
      src/CoreBundle/Entity/Session.php
  42. 2
      src/CoreBundle/Entity/SettingsCurrent.php
  43. 3
      src/CoreBundle/Entity/SkillRelUser.php
  44. 12
      src/CoreBundle/Entity/User.php
  45. 8
      src/CoreBundle/Filter/CidFilter.php
  46. 8
      src/CoreBundle/Filter/SidFilter.php
  47. 2
      src/CoreBundle/Filter/SocialWallFilter.php
  48. 2
      src/CoreBundle/Filter/UserExtraFieldFilter.php
  49. 2
      src/CoreBundle/Form/DataTransformer/ResourceToIdentifierTransformer.php
  50. 4
      src/CoreBundle/Framework/Container.php
  51. 2
      src/CoreBundle/Migrations/AbstractMigrationChamilo.php
  52. 2
      src/CoreBundle/Migrations/Schema/V200/Version20230904173400.php
  53. 2
      src/CoreBundle/Migrations/Schema/V200/Version20230913162700.php
  54. 14
      src/CoreBundle/Migrations/Schema/V200/Version20240202122300.php
  55. 2
      src/CoreBundle/Repository/AssetRepository.php
  56. 2
      src/CoreBundle/Repository/GroupRepository.php
  57. 3
      src/CoreBundle/Repository/LanguageRepository.php
  58. 9
      src/CoreBundle/Repository/LegalRepository.php
  59. 4
      src/CoreBundle/Repository/MessageRepository.php
  60. 2
      src/CoreBundle/Repository/Node/IllustrationRepository.php
  61. 20
      src/CoreBundle/Repository/Node/UserRepository.php
  62. 36
      src/CoreBundle/Repository/Node/UsergroupRepository.php
  63. 2
      src/CoreBundle/Repository/PageCategoryRepository.php
  64. 2
      src/CoreBundle/Repository/PageRepository.php
  65. 4
      src/CoreBundle/Repository/ResourceNodeRepository.php
  66. 56
      src/CoreBundle/Repository/ResourceRepository.php
  67. 4
      src/CoreBundle/Repository/SessionRepository.php
  68. 2
      src/CoreBundle/Repository/SkillRepository.php
  69. 6
      src/CoreBundle/Repository/SysAnnouncementRepository.php
  70. 2
      src/CoreBundle/Repository/TrackECourseAccessRepository.php
  71. 2
      src/CoreBundle/Security/AuthenticationEntryPoint.php
  72. 6
      src/CoreBundle/Serializer/ResourceNormalizer.php
  73. 9
      src/CoreBundle/Serializer/UserToJsonNormalizer.php
  74. 2
      src/CoreBundle/Settings/SettingsManager.php
  75. 2
      src/CoreBundle/State/CategorizedExerciseResultStateProvider.php
  76. 2
      src/CoreBundle/Traits/CourseControllerTrait.php
  77. 6
      src/CoreBundle/Traits/ResourceControllerTrait.php
  78. 2
      src/CourseBundle/Controller/CourseControllerInterface.php
  79. 2
      src/CourseBundle/Entity/CForum.php
  80. 2
      src/CourseBundle/Entity/CForumPost.php
  81. 2
      src/CourseBundle/Entity/CForumThread.php
  82. 2
      src/CourseBundle/Entity/CGroup.php
  83. 2
      src/CourseBundle/Entity/CLp.php
  84. 4
      src/CourseBundle/Entity/CSurvey.php
  85. 2
      src/CourseBundle/Entity/CSurveyAnswer.php
  86. 2
      src/CourseBundle/Entity/CTool.php
  87. 4
      src/CourseBundle/Repository/CCalendarEventRepository.php
  88. 2
      src/CourseBundle/Repository/CCourseDescriptionRepository.php
  89. 6
      src/CourseBundle/Repository/CDocumentRepository.php
  90. 2
      src/CourseBundle/Repository/CForumCategoryRepository.php
  91. 4
      src/CourseBundle/Repository/CForumPostRepository.php
  92. 9
      src/CourseBundle/Repository/CForumThreadRepository.php
  93. 12
      src/CourseBundle/Repository/CGroupRepository.php
  94. 6
      src/CourseBundle/Repository/CLpRelUserRepository.php
  95. 12
      src/CourseBundle/Repository/CLpRepository.php
  96. 2
      src/CourseBundle/Repository/CNotebookRepository.php
  97. 16
      src/CourseBundle/Repository/CQuizRepository.php
  98. 4
      src/CourseBundle/Repository/CShortcutRepository.php
  99. 30
      src/CourseBundle/Repository/CStudentPublicationRepository.php
  100. 12
      src/CourseBundle/Repository/CSurveyRepository.php
  101. Some files were not shown because too many files have changed in this diff Show More

@ -246,7 +246,7 @@ class ChamiloApi
* *
* @throws Exception * @throws Exception
*/ */
public static function getCourseIdByDirectory(string $directory = null): int public static function getCourseIdByDirectory(?string $directory = null): int
{ {
if (!empty($directory)) { if (!empty($directory)) {
$directory = Database::escape_string($directory); $directory = Database::escape_string($directory);
@ -340,7 +340,7 @@ class ChamiloApi
public static function getColorPalette( public static function getColorPalette(
bool $decimalOpacity = false, bool $decimalOpacity = false,
bool $wrapInRGBA = false, bool $wrapInRGBA = false,
int $fillUpTo = null ?int $fillUpTo = null
): array { ): array {
// Get the common colors from the palette used for pchart // Get the common colors from the palette used for pchart
$paletteFile = api_get_path(SYS_CODE_PATH).'palettes/pchart/default.color'; $paletteFile = api_get_path(SYS_CODE_PATH).'palettes/pchart/default.color';
@ -380,7 +380,7 @@ class ChamiloApi
* *
* @throws Exception * @throws Exception
*/ */
public static function getServerMidnightTime(string $utcTime = null): DateTime public static function getServerMidnightTime(?string $utcTime = null): DateTime
{ {
$localTime = api_get_local_time($utcTime); $localTime = api_get_local_time($utcTime);
$localTimeZone = api_get_timezone(); $localTimeZone = api_get_timezone();

@ -1,4 +1,5 @@
<?php <?php
declare(strict_types=1); declare(strict_types=1);
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
@ -28,7 +29,7 @@ class CLinkDetailsController extends AbstractController
$resourceLinkList[] = [ $resourceLinkList[] = [
'visibility' => $resourceLink->getVisibility(), 'visibility' => $resourceLink->getVisibility(),
'cid' => $resourceLink->getCourse()->getId(), 'cid' => $resourceLink->getCourse()->getId(),
'sid' => $resourceLink->getSession()->getId() 'sid' => $resourceLink->getSession()->getId(),
]; ];
} }
} }

@ -1,4 +1,5 @@
<?php <?php
declare(strict_types=1); declare(strict_types=1);
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
@ -11,6 +12,15 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use const CURLINFO_HTTP_CODE;
use const CURLOPT_FOLLOWLOCATION;
use const CURLOPT_HEADER;
use const CURLOPT_PROXY;
use const CURLOPT_PROXYPORT;
use const CURLOPT_RETURNTRANSFER;
use const CURLOPT_TIMEOUT;
use const CURLOPT_URL;
class CheckCLinkAction extends AbstractController class CheckCLinkAction extends AbstractController
{ {
public function __invoke(CLink $link, Request $request, SettingsManager $settingsManager): JsonResponse public function __invoke(CLink $link, Request $request, SettingsManager $settingsManager): JsonResponse
@ -57,7 +67,7 @@ class CheckCLinkAction extends AbstractController
curl_close($ch); curl_close($ch);
// Check for any errors // Check for any errors
if ($result === false || curl_getinfo($ch, CURLINFO_HTTP_CODE) != 200) { if (false === $result || 200 != curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
return false; return false;
} }

@ -74,7 +74,7 @@ class CreateCLinkAction extends BaseResourceFileAction
bool $onHomepage bool $onHomepage
): void { ): void {
$firstLink = reset($resourceLinkList); $firstLink = reset($resourceLinkList);
if (isset($firstLink['sid']) && isset($firstLink['cid'])) { if (isset($firstLink['sid'], $firstLink['cid'])) {
$sid = $firstLink['sid']; $sid = $firstLink['sid'];
$cid = $firstLink['cid']; $cid = $firstLink['cid'];
$course = $cid ? $em->getRepository(Course::class)->find($cid) : null; $course = $cid ? $em->getRepository(Course::class)->find($cid) : null;

@ -59,7 +59,7 @@ class UpdateCLinkAction extends BaseResourceFileAction
bool $onHomepage bool $onHomepage
): void { ): void {
$firstLink = reset($resourceLinkList); $firstLink = reset($resourceLinkList);
if (isset($firstLink['sid']) && isset($firstLink['cid'])) { if (isset($firstLink['sid'], $firstLink['cid'])) {
$sid = $firstLink['sid']; $sid = $firstLink['sid'];
$cid = $firstLink['cid']; $cid = $firstLink['cid'];
$course = $cid ? $em->getRepository(Course::class)->find($cid) : null; $course = $cid ? $em->getRepository(Course::class)->find($cid) : null;

@ -1,4 +1,5 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
declare(strict_types=1); declare(strict_types=1);
@ -22,7 +23,6 @@ class UserSkillsController
$skillsData = []; $skillsData = [];
foreach ($skillRelUsers as $skillRelUser) { foreach ($skillRelUsers as $skillRelUser) {
$skillAsset = $skillRelUser->getSkill()->getAsset(); $skillAsset = $skillRelUser->getSkill()->getAsset();
$skillData = [ $skillData = [

@ -79,7 +79,7 @@ class ResetPasswordController extends AbstractController
* Validates and process the reset URL that the user clicked in their email. * Validates and process the reset URL that the user clicked in their email.
*/ */
#[Route('/reset/{token}', name: 'app_reset_password')] #[Route('/reset/{token}', name: 'app_reset_password')]
public function reset(Request $request, UserPasswordHasherInterface $passwordHasher, string $token = null): Response public function reset(Request $request, UserPasswordHasherInterface $passwordHasher, ?string $token = null): Response
{ {
if ($token) { if ($token) {
// We store the token in session and remove it from the URL, to avoid the URL being // We store the token in session and remove it from the URL, to avoid the URL being

@ -183,14 +183,15 @@ class ResourceController extends AbstractResourceController implements CourseCon
throw new FileNotFoundException('Resource not found'); throw new FileNotFoundException('Resource not found');
} }
if ('course_tool' === $tool && 'links' === $type) { if ('course_tool' === $tool && 'links' === $type) {
$cLink = $cLinkRepository->findOneBy(['resourceNode' => $resourceNode]); $cLink = $cLinkRepository->findOneBy(['resourceNode' => $resourceNode]);
if ($cLink) { if ($cLink) {
$url = $cLink->getUrl(); $url = $cLink->getUrl();
return $this->redirect($url); return $this->redirect($url);
} else {
throw new FileNotFoundException('CLink not found for the given resource node');
} }
throw new FileNotFoundException('CLink not found for the given resource node');
} else { } else {
$repo = $this->getRepositoryFromRequest($request); $repo = $this->getRepositoryFromRequest($request);
if ($repo instanceof ResourceWithLinkInterface) { if ($repo instanceof ResourceWithLinkInterface) {
@ -454,7 +455,7 @@ class ResourceController extends AbstractResourceController implements CourseCon
/** /**
* @return mixed|StreamedResponse * @return mixed|StreamedResponse
*/ */
private function processFile(Request $request, ResourceNode $resourceNode, string $mode = 'show', string $filter = '', array $allUserInfo = null) private function processFile(Request $request, ResourceNode $resourceNode, string $mode = 'show', string $filter = '', ?array $allUserInfo = null)
{ {
$this->denyAccessUnlessGranted( $this->denyAccessUnlessGranted(
ResourceNodeVoter::VIEW, ResourceNodeVoter::VIEW,

@ -9,7 +9,6 @@ namespace Chamilo\CoreBundle\Controller;
use Chamilo\CoreBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\LanguageRepository; use Chamilo\CoreBundle\Repository\LanguageRepository;
use Chamilo\CoreBundle\Repository\LegalRepository; use Chamilo\CoreBundle\Repository\LegalRepository;
use Chamilo\CoreBundle\Repository\Node\CourseRepository;
use Chamilo\CoreBundle\Repository\Node\UsergroupRepository; use Chamilo\CoreBundle\Repository\Node\UsergroupRepository;
use Chamilo\CoreBundle\Repository\Node\UserRepository; use Chamilo\CoreBundle\Repository\Node\UserRepository;
use Chamilo\CoreBundle\Serializer\UserToJsonNormalizer; use Chamilo\CoreBundle\Serializer\UserToJsonNormalizer;
@ -36,8 +35,7 @@ class SocialController extends AbstractController
SettingsManager $settingsManager, SettingsManager $settingsManager,
UserToJsonNormalizer $userToJsonNormalizer UserToJsonNormalizer $userToJsonNormalizer
): JsonResponse { ): JsonResponse {
$propertiesToJson = $userToJsonNormalizer->serializeUserData($userId);
$propertiesToJson = $userToJsonNormalizer->serializeUserData($userId);
$properties = $propertiesToJson ? json_decode($propertiesToJson, true) : []; $properties = $propertiesToJson ? json_decode($propertiesToJson, true) : [];
$officerData = [ $officerData = [
@ -103,11 +101,11 @@ class SocialController extends AbstractController
]; ];
} }
$formattedDate = new DateTime('@' . $term->getDate()); $formattedDate = new DateTime('@'.$term->getDate());
$dataForVue = [ $dataForVue = [
'terms' => $termsContent, 'terms' => $termsContent,
'date_text' => $translator->trans('PublicationDate', [], 'messages', $isoCode) . ': ' . $formattedDate->format('Y-m-d H:i:s'), 'date_text' => $translator->trans('PublicationDate', [], 'messages', $isoCode).': '.$formattedDate->format('Y-m-d H:i:s'),
]; ];
return $this->json($dataForVue); return $this->json($dataForVue);
@ -124,7 +122,7 @@ class SocialController extends AbstractController
if (!$allowTermsConditions) { if (!$allowTermsConditions) {
return $this->json([ return $this->json([
'message' => $translator->trans('No terms and conditions available', [], 'messages') 'message' => $translator->trans('No terms and conditions available', [], 'messages'),
]); ]);
} }
@ -139,7 +137,7 @@ class SocialController extends AbstractController
if (empty($value['value'])) { if (empty($value['value'])) {
return $this->json([ return $this->json([
'isAccepted' => false, 'isAccepted' => false,
'message' => $translator->trans('Send legal agreement', [], 'messages') 'message' => $translator->trans('Send legal agreement', [], 'messages'),
]); ]);
} }
@ -148,7 +146,7 @@ class SocialController extends AbstractController
$response = [ $response = [
'isAccepted' => true, 'isAccepted' => true,
'acceptDate' => $dateTime->format('Y-m-d H:i:s'), 'acceptDate' => $dateTime->format('Y-m-d H:i:s'),
'message' => '' 'message' => '',
]; ];
return $this->json($response); return $this->json($response);
@ -167,23 +165,23 @@ class SocialController extends AbstractController
$explanation = $data['explanation'] ?? ''; $explanation = $data['explanation'] ?? '';
$requestType = $data['requestType'] ?? ''; $requestType = $data['requestType'] ?? '';
/* @var User $user */ /** @var User $user */
$user = $userRepo->find($userId); $user = $userRepo->find($userId);
if (!$user) { if (!$user) {
return $this->json(['success' => false, 'message' => 'User not found']); return $this->json(['success' => false, 'message' => 'User not found']);
} }
if ($requestType === 'delete_account') { if ('delete_account' === $requestType) {
$fieldToUpdate = 'request_for_delete_account'; $fieldToUpdate = 'request_for_delete_account';
$justificationFieldToUpdate = 'request_for_delete_account_justification'; $justificationFieldToUpdate = 'request_for_delete_account_justification';
$emailSubject = 'Request for account removal'; $emailSubject = 'Request for account removal';
$emailContent = sprintf($translator->trans("User %s asked for the deletion of his/her account, explaining that : ") . $explanation, $user->getFullName()); $emailContent = sprintf($translator->trans('User %s asked for the deletion of his/her account, explaining that : ').$explanation, $user->getFullName());
} elseif ($requestType === 'delete_legal') { } elseif ('delete_legal' === $requestType) {
$fieldToUpdate = 'request_for_legal_agreement_consent_removal'; $fieldToUpdate = 'request_for_legal_agreement_consent_removal';
$justificationFieldToUpdate = 'request_for_legal_agreement_consent_removal_justification'; $justificationFieldToUpdate = 'request_for_legal_agreement_consent_removal_justification';
$emailSubject = 'Request for consent withdrawal on legal terms'; $emailSubject = 'Request for consent withdrawal on legal terms';
$emailContent = sprintf($translator->trans("User %s asked for the removal of his/her consent to our legal terms, explaining that: ") . $explanation, $user->getFullName()); $emailContent = sprintf($translator->trans('User %s asked for the removal of his/her consent to our legal terms, explaining that: ').$explanation, $user->getFullName());
} else { } else {
return $this->json(['success' => false, 'message' => 'Invalid action type']); return $this->json(['success' => false, 'message' => 'Invalid action type']);
} }
@ -199,13 +197,14 @@ class SocialController extends AbstractController
->from($user->getEmail()) ->from($user->getEmail())
->to($emailPlatform) ->to($emailPlatform)
->subject($emailSubject) ->subject($emailSubject)
->html($emailContent); ->html($emailContent)
;
$mailer->send($email); $mailer->send($email);
return $this->json([ return $this->json([
'success' => true, 'success' => true,
'message' => $translator->trans('Your request has been received.') 'message' => $translator->trans('Your request has been received.'),
]); ]);
} }
@ -217,7 +216,6 @@ class SocialController extends AbstractController
SettingsManager $settingsManager, SettingsManager $settingsManager,
RequestStack $requestStack RequestStack $requestStack
): JsonResponse { ): JsonResponse {
$baseUrl = $requestStack->getCurrentRequest()->getBaseUrl(); $baseUrl = $requestStack->getCurrentRequest()->getBaseUrl();
$cid = (int) $settingsManager->getSetting('forum.global_forums_course_id'); $cid = (int) $settingsManager->getSetting('forum.global_forums_course_id');
$groupsArray = []; $groupsArray = [];
@ -259,13 +257,12 @@ class SocialController extends AbstractController
SettingsManager $settingsManager, SettingsManager $settingsManager,
RequestStack $requestStack RequestStack $requestStack
): JsonResponse { ): JsonResponse {
$baseUrl = $requestStack->getCurrentRequest()->getBaseUrl(); $baseUrl = $requestStack->getCurrentRequest()->getBaseUrl();
$cid = (int) $settingsManager->getSetting('forum.global_forums_course_id'); $cid = (int) $settingsManager->getSetting('forum.global_forums_course_id');
$goToLink = ''; $goToLink = '';
if (!empty($cid)) { if (!empty($cid)) {
$goToLink = $baseUrl . '/main/forum/index.php?cid=' . $cid . '&sid=0&gid=0'; $goToLink = $baseUrl.'/main/forum/index.php?cid='.$cid.'&sid=0&gid=0';
} }
return $this->json(['go_to' => $goToLink]); return $this->json(['go_to' => $goToLink]);

@ -16,7 +16,7 @@ class AccessGroupFixtures extends Fixture implements ContainerAwareInterface
{ {
private ContainerInterface $container; private ContainerInterface $container;
public function setContainer(ContainerInterface $container = null): void public function setContainer(?ContainerInterface $container = null): void
{ {
$this->container = $container; $this->container = $container;
} }

@ -22,7 +22,7 @@ class AccessUserFixtures extends Fixture implements ContainerAwareInterface
private ContainerInterface $container; private ContainerInterface $container;
public function setContainer(ContainerInterface $container = null): void public function setContainer(?ContainerInterface $container = null): void
{ {
$this->container = $container; $this->container = $container;
} }

@ -19,7 +19,7 @@ class AccessUserUrlFixtures extends Fixture implements ContainerAwareInterface
{ {
private ContainerInterface $container; private ContainerInterface $container;
public function setContainer(ContainerInterface $container = null): void public function setContainer(?ContainerInterface $container = null): void
{ {
$this->container = $container; $this->container = $container;
} }

@ -17,7 +17,7 @@ class PageFixtures extends Fixture implements ContainerAwareInterface
{ {
private ContainerInterface $container; private ContainerInterface $container;
public function setContainer(ContainerInterface $container = null): void public function setContainer(?ContainerInterface $container = null): void
{ {
$this->container = $container; $this->container = $container;
} }

@ -20,7 +20,7 @@ class TicketFixtures extends Fixture implements ContainerAwareInterface
{ {
private ContainerInterface $container; private ContainerInterface $container;
public function setContainer(ContainerInterface $container = null): void public function setContainer(?ContainerInterface $container = null): void
{ {
$this->container = $container; $this->container = $container;
} }

@ -30,7 +30,7 @@ final class CCalendarEventExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
/*if ($this->security->isGranted('ROLE_ADMIN')) { /*if ($this->security->isGranted('ROLE_ADMIN')) {
@ -55,7 +55,7 @@ final class CCalendarEventExtension implements QueryCollectionExtensionInterface
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
array $identifiers, array $identifiers,
string $operationName = null, ?string $operationName = null,
array $context = [] array $context = []
): void { ): void {
// $this->addWhere($queryBuilder, $resourceClass); // $this->addWhere($queryBuilder, $resourceClass);

@ -32,7 +32,7 @@ final class CDocumentExtension implements QueryCollectionExtensionInterface // ,
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
$this->addWhere($queryBuilder, $resourceClass); $this->addWhere($queryBuilder, $resourceClass);

@ -28,7 +28,7 @@ class CStudentPublicationExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if (CStudentPublication::class !== $resourceClass) { if (CStudentPublication::class !== $resourceClass) {

@ -24,7 +24,7 @@ class CToolExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if (CTool::class !== $resourceClass) { if (CTool::class !== $resourceClass) {

@ -30,7 +30,7 @@ final class CToolIntroExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if (CToolIntro::class !== $resourceClass) { if (CToolIntro::class !== $resourceClass) {

@ -29,7 +29,7 @@ final class CourseExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
$this->addWhere($queryBuilder, $resourceClass); $this->addWhere($queryBuilder, $resourceClass);

@ -27,7 +27,7 @@ final class CourseRelUserExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if ($this->security->isGranted('ROLE_ADMIN')) { if ($this->security->isGranted('ROLE_ADMIN')) {

@ -28,7 +28,7 @@ final class MessageExtension implements QueryCollectionExtensionInterface // , Q
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
/*if ($this->security->isGranted('ROLE_ADMIN')) { /*if ($this->security->isGranted('ROLE_ADMIN')) {
@ -53,7 +53,7 @@ final class MessageExtension implements QueryCollectionExtensionInterface // , Q
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
array $identifiers, array $identifiers,
string $operationName = null, ?string $operationName = null,
array $context = [] array $context = []
): void { ): void {
// error_log('applyToItem1'); // error_log('applyToItem1');

@ -24,7 +24,7 @@ class MessageRelUserExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if (MessageRelUser::class !== $resourceClass) { if (MessageRelUser::class !== $resourceClass) {

@ -25,7 +25,7 @@ final class MessageTagExtension implements QueryCollectionExtensionInterface //
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
$this->addWhere($queryBuilder, $resourceClass); $this->addWhere($queryBuilder, $resourceClass);

@ -28,7 +28,7 @@ final class PageExtension implements QueryCollectionExtensionInterface // , Quer
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
$this->addWhere($queryBuilder, $resourceClass); $this->addWhere($queryBuilder, $resourceClass);
@ -39,7 +39,7 @@ final class PageExtension implements QueryCollectionExtensionInterface // , Quer
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
array $identifiers, array $identifiers,
string $operationName = null, ?string $operationName = null,
array $context = [] array $context = []
): void { ): void {
// $this->addWhere($queryBuilder, $resourceClass); // $this->addWhere($queryBuilder, $resourceClass);

@ -32,7 +32,7 @@ final class PersonalFileExtension implements QueryCollectionExtensionInterface /
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
$this->addWhere($queryBuilder, $resourceClass); $this->addWhere($queryBuilder, $resourceClass);

@ -31,7 +31,7 @@ final class SessionRelUserExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
$this->addWhere($queryBuilder, $resourceClass); $this->addWhere($queryBuilder, $resourceClass);

@ -23,7 +23,7 @@ class SocialPostExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if ('true' !== $this->settingsManager->getSetting('social.allow_social_tool')) { if ('true' !== $this->settingsManager->getSetting('social.allow_social_tool')) {

@ -25,7 +25,7 @@ final class TrackEExerciseExtension implements QueryCollectionExtensionInterface
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if (TrackEExercise::class !== $resourceClass) { if (TrackEExercise::class !== $resourceClass) {

@ -19,7 +19,7 @@ class UserItemDataProvider implements ItemDataProviderInterface, RestrictedDataP
private readonly NameConvention $nameConvention private readonly NameConvention $nameConvention
) {} ) {}
public function getItem(string $resourceClass, $id, string $operationName = null, array $context = []) public function getItem(string $resourceClass, $id, ?string $operationName = null, array $context = [])
{ {
$user = $this->repository->find($id); $user = $this->repository->find($id);
@ -28,7 +28,7 @@ class UserItemDataProvider implements ItemDataProviderInterface, RestrictedDataP
return $user; return $user;
} }
public function supports(string $resourceClass, string $operationName = null, array $context = []): bool public function supports(string $resourceClass, ?string $operationName = null, array $context = []): bool
{ {
return User::class === $resourceClass; return User::class === $resourceClass;
} }

@ -33,9 +33,6 @@ class ChamiloCoreExtension extends Extension
$loader->load('services.xml'); $loader->load('services.xml');
} }
/**
* @return string
*/
public function getAlias(): string public function getAlias(): string
{ {
return 'chamilo_core'; return 'chamilo_core';

@ -161,8 +161,8 @@ abstract class AbstractResource
*/ */
public function addCourseLink( public function addCourseLink(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null, ?CGroup $group = null,
int $visibility = ResourceLink::VISIBILITY_PUBLISHED int $visibility = ResourceLink::VISIBILITY_PUBLISHED
): self { ): self {
if (null === $this->getParent()) { if (null === $this->getParent()) {
@ -257,9 +257,9 @@ abstract class AbstractResource
public function addResourceToUserList( public function addResourceToUserList(
array $userList, array $userList,
Course $course = null, ?Course $course = null,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
): static { ): static {
if (!empty($userList)) { if (!empty($userList)) {
foreach ($userList as $user) { foreach ($userList as $user) {
@ -272,9 +272,9 @@ abstract class AbstractResource
public function addUserLink( public function addUserLink(
User $user, User $user,
Course $course = null, ?Course $course = null,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
): static { ): static {
$resourceLink = (new ResourceLink()) $resourceLink = (new ResourceLink())
->setVisibility(ResourceLink::VISIBILITY_PUBLISHED) ->setVisibility(ResourceLink::VISIBILITY_PUBLISHED)
@ -310,8 +310,8 @@ abstract class AbstractResource
public function addResourceToGroupList( public function addResourceToGroupList(
array $groupList, array $groupList,
Course $course = null, ?Course $course = null,
Session $session = null, ?Session $session = null,
): static { ): static {
foreach ($groupList as $group) { foreach ($groupList as $group) {
$this->addGroupLink($course, $group, $session); $this->addGroupLink($course, $group, $session);
@ -320,7 +320,7 @@ abstract class AbstractResource
return $this; return $this;
} }
public function addGroupLink(Course $course, CGroup $group, Session $session = null): static public function addGroupLink(Course $course, CGroup $group, ?Session $session = null): static
{ {
$resourceLink = (new ResourceLink()) $resourceLink = (new ResourceLink())
->setCourse($course) ->setCourse($course)
@ -440,7 +440,7 @@ abstract class AbstractResource
return null; return null;
} }
public function isVisible(Course $course, Session $session = null): bool public function isVisible(Course $course, ?Session $session = null): bool
{ {
$link = $this->getFirstResourceLinkFromCourseSession($course, $session); $link = $this->getFirstResourceLinkFromCourseSession($course, $session);
@ -455,7 +455,7 @@ abstract class AbstractResource
return ResourceLink::VISIBILITY_PUBLISHED === $link->getVisibility(); return ResourceLink::VISIBILITY_PUBLISHED === $link->getVisibility();
} }
public function getFirstResourceLinkFromCourseSession(Course $course, Session $session = null): ?ResourceLink public function getFirstResourceLinkFromCourseSession(Course $course, ?Session $session = null): ?ResourceLink
{ {
$resourceNode = $this->getResourceNode(); $resourceNode = $this->getResourceNode();
if ($resourceNode && $resourceNode->getResourceLinks()->count() > 0) { if ($resourceNode && $resourceNode->getResourceLinks()->count() > 0) {

@ -265,7 +265,7 @@ class Asset implements Stringable
return $this->file; return $this->file;
} }
public function setFile(File|UploadedFile $file = null): self public function setFile(File|UploadedFile|null $file = null): self
{ {
$this->file = $file; $this->file = $file;

@ -522,7 +522,7 @@ class BranchSync
return $this->root; return $this->root;
} }
public function setParent(self $parent = null): self public function setParent(?self $parent = null): self
{ {
$this->parent = $parent; $this->parent = $parent;

@ -56,7 +56,7 @@ use Symfony\Component\Validator\Constraints as Assert;
'properties' => [ 'properties' => [
'visibility' => ['type' => 'integer'], 'visibility' => ['type' => 'integer'],
'c_id' => ['type' => 'integer'], 'c_id' => ['type' => 'integer'],
'session_id' => ['type' => 'integer'] 'session_id' => ['type' => 'integer'],
], ],
], ],
], ],

@ -88,7 +88,7 @@ class Portfolio
* *
* @return Portfolio * @return Portfolio
*/ */
public function setCourse(Course $course = null) public function setCourse(?Course $course = null)
{ {
$this->course = $course; $this->course = $course;
@ -120,7 +120,7 @@ class Portfolio
* *
* @return Portfolio * @return Portfolio
*/ */
public function setSession(Session $session = null) public function setSession(?Session $session = null)
{ {
$this->session = $session; $this->session = $session;
@ -257,7 +257,7 @@ class Portfolio
* *
* @return Portfolio * @return Portfolio
*/ */
public function setCategory(PortfolioCategory $category = null) public function setCategory(?PortfolioCategory $category = null)
{ {
$this->category = $category; $this->category = $category;

@ -121,7 +121,7 @@ class PortfolioCategory implements Stringable
* *
* @return ArrayCollection * @return ArrayCollection
*/ */
public function getItems(Course $course = null, Session $session = null, bool $onlyVisibles = false) public function getItems(?Course $course = null, ?Session $session = null, bool $onlyVisibles = false)
{ {
$criteria = Criteria::create(); $criteria = Criteria::create();

@ -328,7 +328,7 @@ class ResourceFile implements Stringable
return $this->file; return $this->file;
} }
public function setFile(File|UploadedFile $file = null): self public function setFile(File|UploadedFile|null $file = null): self
{ {
$this->file = $file; $this->file = $file;
if (null !== $file) { if (null !== $file) {

@ -159,7 +159,7 @@ class ResourceLink implements Stringable
return $this->course; return $this->course;
} }
public function setCourse(Course $course = null): self public function setCourse(?Course $course = null): self
{ {
$this->course = $course; $this->course = $course;
@ -171,7 +171,7 @@ class ResourceLink implements Stringable
return $this->session; return $this->session;
} }
public function setSession(Session $session = null): self public function setSession(?Session $session = null): self
{ {
$this->session = $session; $this->session = $session;
@ -198,7 +198,7 @@ class ResourceLink implements Stringable
return $this->group; return $this->group;
} }
public function setGroup(CGroup $group = null): self public function setGroup(?CGroup $group = null): self
{ {
$this->group = $group; $this->group = $group;
@ -210,7 +210,7 @@ class ResourceLink implements Stringable
return $this->userGroup; return $this->userGroup;
} }
public function setUserGroup(Usergroup $group = null): self public function setUserGroup(?Usergroup $group = null): self
{ {
$this->userGroup = $group; $this->userGroup = $group;
@ -222,7 +222,7 @@ class ResourceLink implements Stringable
return $this->user; return $this->user;
} }
public function setUser(User $user = null): self public function setUser(?User $user = null): self
{ {
$this->user = $user; $this->user = $user;

@ -274,7 +274,7 @@ class ResourceNode implements Stringable
/** /**
* Sets the parent resource. * Sets the parent resource.
*/ */
public function setParent(self $parent = null): self public function setParent(?self $parent = null): self
{ {
$this->parent = $parent; $this->parent = $parent;
@ -315,7 +315,7 @@ class ResourceNode implements Stringable
return $this; return $this;
} }
public function getPathForDisplayToArray(int $baseRoot = null): array public function getPathForDisplayToArray(?int $baseRoot = null): array
{ {
$parts = explode(self::PATH_SEPARATOR, $this->path); $parts = explode(self::PATH_SEPARATOR, $this->path);
$list = []; $list = [];
@ -452,7 +452,7 @@ class ResourceNode implements Stringable
return $this->resourceFile; return $this->resourceFile;
} }
public function setResourceFile(ResourceFile $resourceFile = null): self public function setResourceFile(?ResourceFile $resourceFile = null): self
{ {
$this->resourceFile = $resourceFile; $this->resourceFile = $resourceFile;

@ -578,7 +578,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
return false; return false;
} }
public function getSessionRelCourseByUser(User $user, int $status = null): Collection public function getSessionRelCourseByUser(User $user, ?int $status = null): Collection
{ {
$criteria = Criteria::create()->where(Criteria::expr()->eq('user', $user)); $criteria = Criteria::create()->where(Criteria::expr()->eq('user', $user));
if (null !== $status) { if (null !== $status) {
@ -1104,7 +1104,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
return false; return false;
} }
public function hasCourseCoachInCourse(User $user, Course $course = null): bool public function hasCourseCoachInCourse(User $user, ?Course $course = null): bool
{ {
if (null === $course) { if (null === $course) {
return false; return false;
@ -1117,14 +1117,14 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
* @param int $status if not set it will check if the user is registered * @param int $status if not set it will check if the user is registered
* with any status * with any status
*/ */
public function hasUserInCourse(User $user, Course $course, int $status = null): bool public function hasUserInCourse(User $user, Course $course, ?int $status = null): bool
{ {
$relation = $this->getUserInCourse($user, $course, $status); $relation = $this->getUserInCourse($user, $course, $status);
return $relation->count() > 0; return $relation->count() > 0;
} }
public function getUserInCourse(User $user, Course $course, int $status = null): Collection public function getUserInCourse(User $user, Course $course, ?int $status = null): Collection
{ {
$criteria = Criteria::create() $criteria = Criteria::create()
->where( ->where(
@ -1161,7 +1161,7 @@ class Session implements ResourceWithAccessUrlInterface, Stringable
return $this->hasUserInCourse($user, $course, self::STUDENT); return $this->hasUserInCourse($user, $course, self::STUDENT);
} }
protected function compareDates(?DateTime $start, DateTime $end = null): bool protected function compareDates(?DateTime $start, ?DateTime $end = null): bool
{ {
$now = new DateTime('now'); $now = new DateTime('now');

@ -123,7 +123,7 @@ class SettingsCurrent
return $this->selectedValue; return $this->selectedValue;
} }
public function setSelectedValue(null|float|int|string $selectedValue): self public function setSelectedValue(float|int|string|null $selectedValue): self
{ {
$this->selectedValue = $selectedValue; $this->selectedValue = $selectedValue;

@ -11,10 +11,8 @@ use ApiPlatform\Metadata\ApiFilter;
use ApiPlatform\Metadata\ApiResource; use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Delete; use ApiPlatform\Metadata\Delete;
use ApiPlatform\Metadata\Get; use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Metadata\Post; use ApiPlatform\Metadata\Post;
use ApiPlatform\Metadata\Put; use ApiPlatform\Metadata\Put;
use Chamilo\CoreBundle\Controller\Api\UserSkillsController;
use Chamilo\CoreBundle\Entity\Listener\SkillRelUserListener; use Chamilo\CoreBundle\Entity\Listener\SkillRelUserListener;
use Chamilo\CoreBundle\Traits\UserTrait; use Chamilo\CoreBundle\Traits\UserTrait;
use DateTime; use DateTime;
@ -25,7 +23,6 @@ use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
#[ApiResource( #[ApiResource(
operations: [ operations: [
new Get(security: "is_granted('VIEW', object)"), new Get(security: "is_granted('VIEW', object)"),

@ -58,7 +58,7 @@ use UserManager;
controller: UserSkillsController::class, controller: UserSkillsController::class,
normalizationContext: ['groups' => ['user_skills:read']], normalizationContext: ['groups' => ['user_skills:read']],
name: 'get_user_skills' name: 'get_user_skills'
) ),
], ],
normalizationContext: ['groups' => ['user:read']], normalizationContext: ['groups' => ['user:read']],
denormalizationContext: ['groups' => ['user:write']], denormalizationContext: ['groups' => ['user:write']],
@ -1250,7 +1250,7 @@ class User implements UserInterface, EquatableInterface, ResourceInterface, Reso
return $this->lastLogin; return $this->lastLogin;
} }
public function setLastLogin(DateTime $lastLogin = null): self public function setLastLogin(?DateTime $lastLogin = null): self
{ {
$this->lastLogin = $lastLogin; $this->lastLogin = $lastLogin;
@ -1280,7 +1280,7 @@ class User implements UserInterface, EquatableInterface, ResourceInterface, Reso
return $this->passwordRequestedAt; return $this->passwordRequestedAt;
} }
public function setPasswordRequestedAt(DateTime $date = null): self public function setPasswordRequestedAt(?DateTime $date = null): self
{ {
$this->passwordRequestedAt = $date; $this->passwordRequestedAt = $date;
@ -1328,7 +1328,7 @@ class User implements UserInterface, EquatableInterface, ResourceInterface, Reso
/** /**
* Sets the credentials expiration date. * Sets the credentials expiration date.
*/ */
public function setCredentialsExpireAt(DateTime $date = null): self public function setCredentialsExpireAt(?DateTime $date = null): self
{ {
$this->credentialsExpireAt = $date; $this->credentialsExpireAt = $date;
@ -1860,7 +1860,7 @@ class User implements UserInterface, EquatableInterface, ResourceInterface, Reso
return $this->dateOfBirth; return $this->dateOfBirth;
} }
public function setDateOfBirth(DateTime $dateOfBirth = null): self public function setDateOfBirth(?DateTime $dateOfBirth = null): self
{ {
$this->dateOfBirth = $dateOfBirth; $this->dateOfBirth = $dateOfBirth;
@ -2347,7 +2347,7 @@ class User implements UserInterface, EquatableInterface, ResourceInterface, Reso
* Used to be implemented in global function \api_max_sort_value. * Used to be implemented in global function \api_max_sort_value.
* Reimplemented using the ORM cache. * Reimplemented using the ORM cache.
*/ */
public function getMaxSortValue(UserCourseCategory $userCourseCategory = null): int public function getMaxSortValue(?UserCourseCategory $userCourseCategory = null): int
{ {
$categoryCourses = $this->courses->matching( $categoryCourses = $this->courses->matching(
Criteria::create()->where(Criteria::expr()->neq('relationType', COURSE_RELATION_TYPE_RRHH))->andWhere( Criteria::create()->where(Criteria::expr()->neq('relationType', COURSE_RELATION_TYPE_RRHH))->andWhere(

@ -25,9 +25,9 @@ class CidFilter extends AbstractFilter
protected RequestStack $requestStack, protected RequestStack $requestStack,
protected EntityManagerInterface $entityManager, protected EntityManagerInterface $entityManager,
ManagerRegistry $managerRegistry, ManagerRegistry $managerRegistry,
LoggerInterface $logger = null, ?LoggerInterface $logger = null,
array $properties = null, ?array $properties = null,
NameConverterInterface $nameConverter = null, ?NameConverterInterface $nameConverter = null,
) { ) {
parent::__construct($managerRegistry, $logger, $properties, $nameConverter); parent::__construct($managerRegistry, $logger, $properties, $nameConverter);
} }
@ -50,7 +50,7 @@ class CidFilter extends AbstractFilter
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if ('cid' !== $property) { if ('cid' !== $property) {

@ -28,9 +28,9 @@ class SidFilter extends AbstractFilter
protected RequestStack $requestStack, protected RequestStack $requestStack,
protected EntityManagerInterface $entityManager, protected EntityManagerInterface $entityManager,
ManagerRegistry $managerRegistry, ManagerRegistry $managerRegistry,
LoggerInterface $logger = null, ?LoggerInterface $logger = null,
array $properties = null, ?array $properties = null,
NameConverterInterface $nameConverter = null ?NameConverterInterface $nameConverter = null
) { ) {
parent::__construct($managerRegistry, $logger, $properties, $nameConverter); parent::__construct($managerRegistry, $logger, $properties, $nameConverter);
} }
@ -58,7 +58,7 @@ class SidFilter extends AbstractFilter
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if ('sid' !== $property) { if ('sid' !== $property) {

@ -39,7 +39,7 @@ class SocialWallFilter extends AbstractFilter
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if ('socialwall_wallOwner' !== $property) { if ('socialwall_wallOwner' !== $property) {

@ -43,7 +43,7 @@ class UserExtraFieldFilter extends AbstractFilter
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
Operation $operation = null, ?Operation $operation = null,
array $context = [] array $context = []
): void { ): void {
if (!$this->isPropertyEnabled($property, $resourceClass)) { if (!$this->isPropertyEnabled($property, $resourceClass)) {

@ -19,7 +19,7 @@ final class ResourceToIdentifierTransformer implements DataTransformerInterface
private string $identifier; private string $identifier;
public function __construct(ObjectRepository $repository, string $identifier = null) public function __construct(ObjectRepository $repository, ?string $identifier = null)
{ {
$this->repository = $repository; $this->repository = $repository;
$this->identifier = $identifier ?? 'id'; $this->identifier = $identifier ?? 'id';

@ -116,7 +116,7 @@ class Container
self::$container = $container; self::$container = $container;
} }
public static function getParameter(string $parameter): null|array|bool|float|int|string|UnitEnum public static function getParameter(string $parameter): array|bool|float|int|string|UnitEnum|null
{ {
if (self::$container->hasParameter($parameter)) { if (self::$container->hasParameter($parameter)) {
return self::$container->getParameter($parameter); return self::$container->getParameter($parameter);
@ -199,7 +199,7 @@ class Container
self::$request = $request; self::$request = $request;
} }
public static function getSession(): null|bool|HttpSessionInterface|Session public static function getSession(): bool|HttpSessionInterface|Session|null
{ {
if (null !== self::$session) { if (null !== self::$session) {
return self::$session; return self::$session;

@ -36,7 +36,7 @@ abstract class AbstractMigrationChamilo extends AbstractMigration implements Con
$this->manager = $manager; $this->manager = $manager;
} }
public function setContainer(ContainerInterface $container = null): void public function setContainer(?ContainerInterface $container = null): void
{ {
$this->container = $container; $this->container = $container;
} }

@ -132,7 +132,7 @@ class Version20230904173400 extends AbstractMigrationChamilo
bool $allDay, bool $allDay,
string $color, string $color,
User $creator, User $creator,
CCalendarEvent $parentEvent = null ?CCalendarEvent $parentEvent = null
): CCalendarEvent { ): CCalendarEvent {
$calendarEvent = new CCalendarEvent(); $calendarEvent = new CCalendarEvent();

@ -404,7 +404,7 @@ final class Version20230913162700 extends AbstractMigrationChamilo
} }
} }
private function replaceOldURLsWithNew($itemDataText, $courseDirectory, $courseId, $connection, $documentRepo): null|array|string private function replaceOldURLsWithNew($itemDataText, $courseDirectory, $courseId, $connection, $documentRepo): array|string|null
{ {
$contentText = $itemDataText; $contentText = $itemDataText;

@ -1,4 +1,5 @@
<?php <?php
declare(strict_types=1); declare(strict_types=1);
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
@ -10,6 +11,7 @@ use Chamilo\CourseBundle\Entity\CLink;
use Chamilo\CourseBundle\Repository\CLinkRepository; use Chamilo\CourseBundle\Repository\CLinkRepository;
use Chamilo\CourseBundle\Repository\CShortcutRepository; use Chamilo\CourseBundle\Repository\CShortcutRepository;
use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Schema;
use Exception;
class Version20240202122300 extends AbstractMigrationChamilo class Version20240202122300 extends AbstractMigrationChamilo
{ {
@ -38,11 +40,12 @@ class Version20240202122300 extends AbstractMigrationChamilo
while ($row = $result->fetchAssociative()) { while ($row = $result->fetchAssociative()) {
$linkId = $row['iid']; $linkId = $row['iid'];
/* @var CLink $link */ /** @var CLink $link */
$link = $linkRepo->find($linkId); $link = $linkRepo->find($linkId);
if (!$link) { if (!$link) {
error_log("Link with ID $linkId not found"); error_log("Link with ID $linkId not found");
continue; continue;
} }
@ -54,8 +57,8 @@ class Version20240202122300 extends AbstractMigrationChamilo
try { try {
$shortcutRepo->addShortCut($link, $admin, $course, $session); $shortcutRepo->addShortCut($link, $admin, $course, $session);
error_log("Shortcut created for link ID $linkId"); error_log("Shortcut created for link ID $linkId");
} catch (\Exception $e) { } catch (Exception $e) {
error_log("Failed to create shortcut for link ID $linkId: " . $e->getMessage()); error_log("Failed to create shortcut for link ID $linkId: ".$e->getMessage());
} }
} else { } else {
error_log("Shortcut already exists for link ID $linkId"); error_log("Shortcut already exists for link ID $linkId");
@ -65,8 +68,5 @@ class Version20240202122300 extends AbstractMigrationChamilo
$em->flush(); $em->flush();
} }
public function down(Schema $schema): void public function down(Schema $schema): void {}
{
}
} }

@ -161,7 +161,7 @@ class AssetRepository extends ServiceEntityRepository
$this->getEntityManager()->flush(); $this->getEntityManager()->flush();
} }
public function delete(Asset $asset = null): void public function delete(?Asset $asset = null): void
{ {
if (null !== $asset) { if (null !== $asset) {
$this->getEntityManager()->remove($asset); $this->getEntityManager()->remove($asset);

@ -91,7 +91,7 @@ class GroupRepository extends ServiceEntityRepository
]; ];
} }
public function createDefaultGroups(AccessGroupFixtures $accessGroupFixtures = null): void public function createDefaultGroups(?AccessGroupFixtures $accessGroupFixtures = null): void
{ {
$em = $this->getEntityManager(); $em = $this->getEntityManager();
$groups = $this->getDefaultGroups(); $groups = $this->getDefaultGroups();

@ -73,7 +73,8 @@ class LanguageRepository extends ServiceEntityRepository
$qb = $this->createQueryBuilder('l'); $qb = $this->createQueryBuilder('l');
$qb->where('l.isocode = :isoCode') $qb->where('l.isocode = :isoCode')
->setParameter('isoCode', $isoCode) ->setParameter('isoCode', $isoCode)
->setMaxResults(1); ->setMaxResults(1)
;
return $qb->getQuery()->getSingleResult(); return $qb->getQuery()->getSingleResult();
} }

@ -134,7 +134,8 @@ class LegalRepository extends ServiceEntityRepository
$qb->where('l.languageId = :languageId') $qb->where('l.languageId = :languageId')
->setParameter('languageId', $languageId) ->setParameter('languageId', $languageId)
->orderBy('l.version', 'DESC') ->orderBy('l.version', 'DESC')
->setMaxResults(1); ->setMaxResults(1)
;
$result = $qb->getQuery()->getSingleResult(); $result = $qb->getQuery()->getSingleResult();
@ -143,7 +144,7 @@ class LegalRepository extends ServiceEntityRepository
} }
return $result; return $result;
} catch (NoResultException | NonUniqueResultException $e) { } catch (NoResultException|NonUniqueResultException $e) {
return null; return null;
} }
} }
@ -151,9 +152,9 @@ class LegalRepository extends ServiceEntityRepository
/** /**
* Replace tags in content. * Replace tags in content.
* *
* @param string $content The content with tags. * @param string $content the content with tags
* *
* @return string The content with tags replaced. * @return string the content with tags replaced
*/ */
private function replaceTags(string $content): string private function replaceTags(string $content): string
{ {

@ -47,7 +47,7 @@ class MessageRepository extends ServiceEntityRepository
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
} }
protected function addReceiverQueryBuilder(User $user, QueryBuilder $qb = null): QueryBuilder protected function addReceiverQueryBuilder(User $user, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'm'); $qb = $this->getOrCreateQueryBuilder($qb, 'm');
$qb $qb
@ -59,7 +59,7 @@ class MessageRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
protected function addMessageTypeQueryBuilder(int $type, QueryBuilder $qb = null): QueryBuilder protected function addMessageTypeQueryBuilder(int $type, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'm'); $qb = $this->getOrCreateQueryBuilder($qb, 'm');
$qb $qb

@ -49,7 +49,7 @@ final class IllustrationRepository extends ResourceRepository
public function addIllustration( public function addIllustration(
ResourceInterface $resource, ResourceInterface $resource,
User $creator, User $creator,
UploadedFile $uploadFile = null, ?UploadedFile $uploadFile = null,
string $crop = '' string $crop = ''
): ?ResourceFile { ): ?ResourceFile {
if (null === $uploadFile) { if (null === $uploadFile) {

@ -169,7 +169,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $resourceNode; return $resourceNode;
} }
public function addRoleListQueryBuilder(array $roles, QueryBuilder $qb = null): QueryBuilder public function addRoleListQueryBuilder(array $roles, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
if (!empty($roles)) { if (!empty($roles)) {
@ -478,7 +478,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
* *
* @return User[] * @return User[]
*/ */
public function findUsersToSendMessage(int $currentUserId, string $searchFilter = null, int $limit = 10) public function findUsersToSendMessage(int $currentUserId, ?string $searchFilter = null, int $limit = 10)
{ {
$allowSendMessageToAllUsers = api_get_setting('allow_send_message_to_all_platform_users'); $allowSendMessageToAllUsers = api_get_setting('allow_send_message_to_all_platform_users');
$accessUrlId = api_get_multiple_access_url() ? api_get_current_access_url_id() : 1; $accessUrlId = api_get_multiple_access_url() ? api_get_current_access_url_id() : 1;
@ -589,7 +589,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
; ;
} }
public function addAccessUrlQueryBuilder(int $accessUrlId, QueryBuilder $qb = null): QueryBuilder public function addAccessUrlQueryBuilder(int $accessUrlId, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb $qb
@ -601,7 +601,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb; return $qb;
} }
public function addActiveAndNotAnonUserQueryBuilder(QueryBuilder $qb = null): QueryBuilder public function addActiveAndNotAnonUserQueryBuilder(?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb $qb
@ -613,7 +613,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb; return $qb;
} }
public function addExpirationDateQueryBuilder(QueryBuilder $qb = null): QueryBuilder public function addExpirationDateQueryBuilder(?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb $qb
@ -624,7 +624,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb; return $qb;
} }
private function addRoleQueryBuilder(string $role, QueryBuilder $qb = null): QueryBuilder private function addRoleQueryBuilder(string $role, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb $qb
@ -635,7 +635,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb; return $qb;
} }
private function addSearchByKeywordQueryBuilder(string $keyword, QueryBuilder $qb = null): QueryBuilder private function addSearchByKeywordQueryBuilder(string $keyword, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb $qb
@ -652,7 +652,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb; return $qb;
} }
private function addUserRelUserQueryBuilder(int $userId, int $relationType, QueryBuilder $qb = null): QueryBuilder private function addUserRelUserQueryBuilder(int $userId, int $relationType, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb->leftJoin('u.friends', 'relations'); $qb->leftJoin('u.friends', 'relations');
@ -666,7 +666,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb; return $qb;
} }
private function addOnlyMyFriendsQueryBuilder(int $userId, QueryBuilder $qb = null): QueryBuilder private function addOnlyMyFriendsQueryBuilder(int $userId, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb $qb
@ -684,7 +684,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb; return $qb;
} }
private function addNotCurrentUserQueryBuilder(int $userId, QueryBuilder $qb = null): QueryBuilder private function addNotCurrentUserQueryBuilder(int $userId, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb $qb

@ -18,10 +18,7 @@ class UsergroupRepository extends ResourceRepository
} }
/** /**
* @param int $userId
* @param int|array $relationType * @param int|array $relationType
* @param bool $withImage
* @return array
*/ */
public function getGroupsByUser(int $userId, int $relationType = Usergroup::GROUP_USER_PERMISSION_READER, bool $withImage = false): array public function getGroupsByUser(int $userId, int $relationType = Usergroup::GROUP_USER_PERMISSION_READER, bool $withImage = false): array
{ {
@ -30,15 +27,18 @@ class UsergroupRepository extends ResourceRepository
->where('gu.user = :userId') ->where('gu.user = :userId')
->setParameter('userId', $userId) ->setParameter('userId', $userId)
->andWhere('g.groupType = :socialClass') ->andWhere('g.groupType = :socialClass')
->setParameter('socialClass', Usergroup::SOCIAL_CLASS); ->setParameter('socialClass', Usergroup::SOCIAL_CLASS)
;
if ($relationType !== 0) { if (0 !== $relationType) {
if (is_array($relationType)) { if (\is_array($relationType)) {
$qb->andWhere('gu.relationType IN (:relationType)') $qb->andWhere('gu.relationType IN (:relationType)')
->setParameter('relationType', $relationType); ->setParameter('relationType', $relationType)
;
} else { } else {
$qb->andWhere('gu.relationType = :relationType') $qb->andWhere('gu.relationType = :relationType')
->setParameter('relationType', $relationType); ->setParameter('relationType', $relationType)
;
} }
} }
@ -46,16 +46,15 @@ class UsergroupRepository extends ResourceRepository
$urlId = $this->getCurrentAccessUrlId(); $urlId = $this->getCurrentAccessUrlId();
$qb->innerJoin('g.urls', 'u') $qb->innerJoin('g.urls', 'u')
->andWhere('u.accessUrl = :urlId') ->andWhere('u.accessUrl = :urlId')
->setParameter('urlId', $urlId); ->setParameter('urlId', $urlId)
;
} }
$qb->orderBy('g.createdAt', 'DESC'); $qb->orderBy('g.createdAt', 'DESC');
$query = $qb->getQuery(); $query = $qb->getQuery();
$groups = $query->getResult();
return $groups; return $query->getResult();
} }
public function searchGroupsByQuery(string $query): array public function searchGroupsByQuery(string $query): array
@ -64,24 +63,25 @@ class UsergroupRepository extends ResourceRepository
if (!empty($query)) { if (!empty($query)) {
$qb->where('g.title LIKE :query OR g.description LIKE :query') $qb->where('g.title LIKE :query OR g.description LIKE :query')
->setParameter('query', '%' . $query . '%'); ->setParameter('query', '%'.$query.'%')
;
} }
if ($this->getUseMultipleUrl()) { if ($this->getUseMultipleUrl()) {
$urlId = $this->getCurrentAccessUrlId(); $urlId = $this->getCurrentAccessUrlId();
$qb->innerJoin('g.urls', 'u') $qb->innerJoin('g.urls', 'u')
->andWhere('u.accessUrl = :urlId') ->andWhere('u.accessUrl = :urlId')
->setParameter('urlId', $urlId); ->setParameter('urlId', $urlId)
;
} }
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
} }
/** /**
* Determines whether to use the multi-URL feature. * Determines whether to use the multi-URL feature.
* *
* @return bool True if multi-URLs should be used, false otherwise. * @return bool true if multi-URLs should be used, false otherwise
*/ */
public function getUseMultipleUrl(): bool public function getUseMultipleUrl(): bool
{ {
@ -93,7 +93,7 @@ class UsergroupRepository extends ResourceRepository
/** /**
* Gets the current access URL ID. * Gets the current access URL ID.
* *
* @return int The ID of the current access URL. * @return int the ID of the current access URL
*/ */
public function getCurrentAccessUrlId(): int public function getCurrentAccessUrlId(): int
{ {
@ -101,6 +101,4 @@ class UsergroupRepository extends ResourceRepository
// For now, returning 1 as a default value. // For now, returning 1 as a default value.
return 1; return 1;
} }
} }

@ -23,7 +23,7 @@ class PageCategoryRepository extends ServiceEntityRepository
$this->getEntityManager()->flush(); $this->getEntityManager()->flush();
} }
public function delete(PageCategory $category = null): void public function delete(?PageCategory $category = null): void
{ {
if (null !== $category) { if (null !== $category) {
$this->getEntityManager()->remove($category); $this->getEntityManager()->remove($category);

@ -23,7 +23,7 @@ class PageRepository extends ServiceEntityRepository
$this->getEntityManager()->flush(); $this->getEntityManager()->flush();
} }
public function delete(Page $page = null): void public function delete(?Page $page = null): void
{ {
if (null !== $page) { if (null !== $page) {
$this->getEntityManager()->remove($page); $this->getEntityManager()->remove($page);

@ -99,7 +99,7 @@ class ResourceNodeRepository extends MaterializedPathRepository
} }
} }
public function getResourceFileUrl(ResourceNode $resourceNode, array $extraParams = [], int $referenceType = null): string public function getResourceFileUrl(ResourceNode $resourceNode, array $extraParams = [], ?int $referenceType = null): string
{ {
try { try {
if ($resourceNode->hasResourceFile()) { if ($resourceNode->hasResourceFile()) {
@ -137,7 +137,7 @@ class ResourceNodeRepository extends MaterializedPathRepository
/** /**
* @todo filter files, check status * @todo filter files, check status
*/ */
public function getSize(ResourceNode $resourceNode, ResourceType $type, Course $course = null, Session $session = null): int public function getSize(ResourceNode $resourceNode, ResourceType $type, ?Course $course = null, ?Session $session = null): int
{ {
$qb = $this->createQueryBuilder('node') $qb = $this->createQueryBuilder('node')
->select('SUM(file.size) as total') ->select('SUM(file.size) as total')

@ -131,8 +131,8 @@ abstract class ResourceRepository extends ServiceEntityRepository
string $title, string $title,
ResourceNode $parentNode, ResourceNode $parentNode,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
): ?ResourceInterface { ): ?ResourceInterface {
$qb = $this->getResourcesByCourse($course, $session, $group, $parentNode); $qb = $this->getResourcesByCourse($course, $session, $group, $parentNode);
$this->addTitleQueryBuilder($title, $qb); $this->addTitleQueryBuilder($title, $qb);
@ -145,8 +145,8 @@ abstract class ResourceRepository extends ServiceEntityRepository
string $title, string $title,
ResourceNode $parentNode, ResourceNode $parentNode,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
): ?ResourceInterface { ): ?ResourceInterface {
$qb = $this->getResourcesByCourse($course, $session, $group, $parentNode); $qb = $this->getResourcesByCourse($course, $session, $group, $parentNode);
$this->addSlugQueryBuilder($title, $qb); $this->addSlugQueryBuilder($title, $qb);
@ -162,8 +162,8 @@ abstract class ResourceRepository extends ServiceEntityRepository
string $title, string $title,
ResourceNode $parentNode, ResourceNode $parentNode,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
): ?ResourceInterface { ): ?ResourceInterface {
$qb = $this->getResourcesByCourseIgnoreVisibility($course, $session, $group, $parentNode); $qb = $this->getResourcesByCourseIgnoreVisibility($course, $session, $group, $parentNode);
$this->addSlugQueryBuilder($title, $qb); $this->addSlugQueryBuilder($title, $qb);
@ -179,8 +179,8 @@ abstract class ResourceRepository extends ServiceEntityRepository
string $title, string $title,
ResourceNode $parentNode, ResourceNode $parentNode,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
) { ) {
$qb = $this->getResourcesByCourse($course, $session, $group, $parentNode); $qb = $this->getResourcesByCourse($course, $session, $group, $parentNode);
$this->addTitleQueryBuilder($title, $qb); $this->addTitleQueryBuilder($title, $qb);
@ -269,7 +269,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
]); ]);
} }
public function addVisibilityQueryBuilder(QueryBuilder $qb = null, bool $checkStudentView = false, bool $displayOnlyPublished = true): QueryBuilder public function addVisibilityQueryBuilder(?QueryBuilder $qb = null, bool $checkStudentView = false, bool $displayOnlyPublished = true): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
@ -314,7 +314,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
public function addCourseSessionGroupQueryBuilder(Course $course, Session $session = null, CGroup $group = null, QueryBuilder $qb = null): QueryBuilder public function addCourseSessionGroupQueryBuilder(Course $course, ?Session $session = null, ?CGroup $group = null, ?QueryBuilder $qb = null): QueryBuilder
{ {
$reflectionClass = $this->getClassMetadata()->getReflectionClass(); $reflectionClass = $this->getClassMetadata()->getReflectionClass();
@ -364,7 +364,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $this->toolChain->getResourceTypeNameByEntity($this->getClassName()); return $this->toolChain->getResourceTypeNameByEntity($this->getClassName());
} }
public function getResources(ResourceNode $parentNode = null): QueryBuilder public function getResources(?ResourceNode $parentNode = null): QueryBuilder
{ {
$resourceTypeName = $this->getResourceTypeName(); $resourceTypeName = $this->getResourceTypeName();
@ -390,7 +390,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
public function getResourcesByCourse(Course $course, Session $session = null, CGroup $group = null, ResourceNode $parentNode = null, bool $displayOnlyPublished = true, bool $displayOrder = false): QueryBuilder public function getResourcesByCourse(Course $course, ?Session $session = null, ?CGroup $group = null, ?ResourceNode $parentNode = null, bool $displayOnlyPublished = true, bool $displayOrder = false): QueryBuilder
{ {
$qb = $this->getResources($parentNode); $qb = $this->getResources($parentNode);
$this->addVisibilityQueryBuilder($qb, true, $displayOnlyPublished); $this->addVisibilityQueryBuilder($qb, true, $displayOnlyPublished);
@ -403,7 +403,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
public function getResourcesByCourseIgnoreVisibility(Course $course, Session $session = null, CGroup $group = null, ResourceNode $parentNode = null): QueryBuilder public function getResourcesByCourseIgnoreVisibility(Course $course, ?Session $session = null, ?CGroup $group = null, ?ResourceNode $parentNode = null): QueryBuilder
{ {
$qb = $this->getResources($parentNode); $qb = $this->getResources($parentNode);
$this->addCourseSessionGroupQueryBuilder($course, $session, $group, $qb); $this->addCourseSessionGroupQueryBuilder($course, $session, $group, $qb);
@ -414,7 +414,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
/** /**
* Get resources only from the base course. * Get resources only from the base course.
*/ */
public function getResourcesByCourseOnly(Course $course, ResourceNode $parentNode = null): QueryBuilder public function getResourcesByCourseOnly(Course $course, ?ResourceNode $parentNode = null): QueryBuilder
{ {
$qb = $this->getResources($parentNode); $qb = $this->getResources($parentNode);
$this->addCourseQueryBuilder($course, $qb); $this->addCourseQueryBuilder($course, $qb);
@ -437,7 +437,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb->getQuery()->getOneOrNullResult(); return $qb->getQuery()->getOneOrNullResult();
} }
public function getResourcesByCreator(User $user, ResourceNode $parentNode = null): QueryBuilder public function getResourcesByCreator(User $user, ?ResourceNode $parentNode = null): QueryBuilder
{ {
$qb = $this->createQueryBuilder('resource') $qb = $this->createQueryBuilder('resource')
->select('resource') ->select('resource')
@ -457,9 +457,9 @@ abstract class ResourceRepository extends ServiceEntityRepository
public function getResourcesByCourseLinkedToUser( public function getResourcesByCourseLinkedToUser(
User $user, User $user,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null, ?CGroup $group = null,
ResourceNode $parentNode = null ?ResourceNode $parentNode = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session, $group, $parentNode); $qb = $this->getResourcesByCourse($course, $session, $group, $parentNode);
$qb->andWhere('node.creator = :user OR (links.user = :user OR links.user IS NULL)'); $qb->andWhere('node.creator = :user OR (links.user = :user OR links.user IS NULL)');
@ -468,7 +468,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
public function getResourcesByLinkedUser(User $user, ResourceNode $parentNode = null): QueryBuilder public function getResourcesByLinkedUser(User $user, ?ResourceNode $parentNode = null): QueryBuilder
{ {
$qb = $this->getResources($parentNode); $qb = $this->getResources($parentNode);
$qb $qb
@ -553,14 +553,14 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $this->resourceNodeRepository->getResourceNodeFileStream($resourceNode); return $this->resourceNodeRepository->getResourceNodeFileStream($resourceNode);
} }
public function getResourceFileDownloadUrl(AbstractResource $resource, array $extraParams = [], int $referenceType = null): string public function getResourceFileDownloadUrl(AbstractResource $resource, array $extraParams = [], ?int $referenceType = null): string
{ {
$extraParams['mode'] = 'download'; $extraParams['mode'] = 'download';
return $this->getResourceFileUrl($resource, $extraParams, $referenceType); return $this->getResourceFileUrl($resource, $extraParams, $referenceType);
} }
public function getResourceFileUrl(AbstractResource $resource, array $extraParams = [], int $referenceType = null): string public function getResourceFileUrl(AbstractResource $resource, array $extraParams = [], ?int $referenceType = null): string
{ {
return $this->getResourceNodeRepository()->getResourceFileUrl( return $this->getResourceNodeRepository()->getResourceFileUrl(
$resource->getResourceNode(), $resource->getResourceNode(),
@ -658,7 +658,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
/** /**
* @todo remove this function and merge it with addResourceNode() * @todo remove this function and merge it with addResourceNode()
*/ */
public function createNodeForResource(ResourceInterface $resource, User $creator, ResourceNode $parentNode, UploadedFile $file = null): ResourceNode public function createNodeForResource(ResourceInterface $resource, User $creator, ResourceNode $parentNode, ?UploadedFile $file = null): ResourceNode
{ {
$em = $this->getEntityManager(); $em = $this->getEntityManager();
@ -720,7 +720,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $resourceNode; return $resourceNode;
} }
public function getTotalSpaceByCourse(Course $course, CGroup $group = null, Session $session = null): int public function getTotalSpaceByCourse(Course $course, ?CGroup $group = null, ?Session $session = null): int
{ {
$qb = $this->createQueryBuilder('resource'); $qb = $this->createQueryBuilder('resource');
$qb $qb
@ -762,7 +762,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return (int) $query->getSingleScalarResult(); return (int) $query->getSingleScalarResult();
} }
public function addTitleDecoration(AbstractResource $resource, Course $course, Session $session = null): string public function addTitleDecoration(AbstractResource $resource, Course $course, ?Session $session = null): string
{ {
if (null === $session) { if (null === $session) {
return ''; return '';
@ -818,7 +818,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return true; return true;
} }
protected function addSlugQueryBuilder(?string $slug, QueryBuilder $qb = null): QueryBuilder protected function addSlugQueryBuilder(?string $slug, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
if (null === $slug) { if (null === $slug) {
@ -834,7 +834,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
protected function addTitleQueryBuilder(?string $title, QueryBuilder $qb = null): QueryBuilder protected function addTitleQueryBuilder(?string $title, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
if (null === $title) { if (null === $title) {
@ -849,7 +849,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
protected function addCreatorQueryBuilder(?User $user, QueryBuilder $qb = null): QueryBuilder protected function addCreatorQueryBuilder(?User $user, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
if (null === $user) { if (null === $user) {
@ -923,6 +923,6 @@ abstract class ResourceRepository extends ServiceEntityRepository
->setMaxResults(1) ->setMaxResults(1)
->getQuery() ->getQuery()
->getOneOrNullResult() ->getOneOrNullResult()
; ;
} }
} }

@ -132,7 +132,7 @@ class SessionRepository extends ServiceEntityRepository
/** /**
* @return array<SessionRelCourse> * @return array<SessionRelCourse>
*/ */
public function getSessionCoursesByStatusInUserSubscription(User $user, Session $session, int $relationType, AccessUrl $url = null): array public function getSessionCoursesByStatusInUserSubscription(User $user, Session $session, int $relationType, ?AccessUrl $url = null): array
{ {
$qb = $this->getEntityManager()->createQueryBuilder(); $qb = $this->getEntityManager()->createQueryBuilder();
@ -180,7 +180,7 @@ class SessionRepository extends ServiceEntityRepository
/** /**
* @return array<SessionRelCourse> * @return array<SessionRelCourse>
*/ */
public function getSessionCoursesByStatusInCourseSubscription(User $user, Session $session, int $status, AccessUrl $url = null): array public function getSessionCoursesByStatusInCourseSubscription(User $user, Session $session, int $status, ?AccessUrl $url = null): array
{ {
$qb = $this->getEntityManager()->createQueryBuilder(); $qb = $this->getEntityManager()->createQueryBuilder();

@ -52,7 +52,7 @@ class SkillRepository extends ServiceEntityRepository
/** /**
* Get the last acquired skill by a user on course and/or session. * Get the last acquired skill by a user on course and/or session.
*/ */
public function getLastByUser(User $user, Course $course = null, Session $session = null): ?Skill public function getLastByUser(User $user, ?Course $course = null, ?Session $session = null): ?Skill
{ {
$qb = $this->createQueryBuilder('s'); $qb = $this->createQueryBuilder('s');

@ -45,7 +45,7 @@ class SysAnnouncementRepository extends ServiceEntityRepository
return $roles; return $roles;
} }
public function getAnnouncementsQueryBuilder(string $iso, AccessUrl $url, User $user = null): QueryBuilder public function getAnnouncementsQueryBuilder(string $iso, AccessUrl $url, ?User $user = null): QueryBuilder
{ {
$qb = $this->createQueryBuilder('s'); $qb = $this->createQueryBuilder('s');
$qb $qb
@ -153,7 +153,7 @@ class SysAnnouncementRepository extends ServiceEntityRepository
return $list; return $list;
} }
public function addRoleListQueryBuilder(array $roles, QueryBuilder $qb = null): QueryBuilder public function addRoleListQueryBuilder(array $roles, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
@ -172,7 +172,7 @@ class SysAnnouncementRepository extends ServiceEntityRepository
return $qb; return $qb;
} }
public function addDateQueryBuilder(QueryBuilder $qb = null): QueryBuilder public function addDateQueryBuilder(?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
$qb $qb

@ -24,7 +24,7 @@ class TrackECourseAccessRepository extends ServiceEntityRepository
/** /**
* Get the last registered access by an user. * Get the last registered access by an user.
*/ */
public function getLastAccessByUser(User $user = null): ?TrackECourseAccess public function getLastAccessByUser(?User $user = null): ?TrackECourseAccess
{ {
if (null === $user) { if (null === $user) {
return null; return null;

@ -18,7 +18,7 @@ class AuthenticationEntryPoint implements AuthenticationEntryPointInterface
private readonly UrlGeneratorInterface $urlGenerator, private readonly UrlGeneratorInterface $urlGenerator,
) {} ) {}
public function start(Request $request, AuthenticationException $authException = null): RedirectResponse public function start(Request $request, ?AuthenticationException $authException = null): RedirectResponse
{ {
/*error_log('start'); /*error_log('start');
$message = $authException->getMessage(); $message = $authException->getMessage();

@ -31,9 +31,9 @@ final class ResourceNormalizer implements ContextAwareNormalizerInterface, Norma
public function normalize( public function normalize(
$object, $object,
string $format = null, ?string $format = null,
array $context = [] array $context = []
): null|array|ArrayObject|bool|float|int|string { ): array|ArrayObject|bool|float|int|string|null {
$context[self::ALREADY_CALLED] = true; $context[self::ALREADY_CALLED] = true;
$request = $this->requestStack->getCurrentRequest(); $request = $this->requestStack->getCurrentRequest();
@ -101,7 +101,7 @@ final class ResourceNormalizer implements ContextAwareNormalizerInterface, Norma
return $this->normalizer->normalize($object, $format, $context); return $this->normalizer->normalize($object, $format, $context);
} }
public function supportsNormalization($data, string $format = null, array $context = []): bool public function supportsNormalization($data, ?string $format = null, array $context = []): bool
{ {
if (isset($context[self::ALREADY_CALLED])) { if (isset($context[self::ALREADY_CALLED])) {
return false; return false;

@ -4,7 +4,6 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Serializer; namespace Chamilo\CoreBundle\Serializer;
use Agenda;
use Chamilo\CoreBundle\Entity\GradebookCertificate; use Chamilo\CoreBundle\Entity\GradebookCertificate;
use Chamilo\CoreBundle\Entity\GradebookResult; use Chamilo\CoreBundle\Entity\GradebookResult;
use Chamilo\CoreBundle\Entity\Message; use Chamilo\CoreBundle\Entity\Message;
@ -44,7 +43,7 @@ use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Exception\NotSupported; use Doctrine\ORM\Exception\NotSupported;
use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\NoResultException; use Doctrine\ORM\NoResultException;
use SocialManager; use Exception;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
use Symfony\Component\Serializer\SerializerInterface; use Symfony\Component\Serializer\SerializerInterface;
@ -696,10 +695,10 @@ final class UserToJsonNormalizer
$em = $this->em; $em = $this->em;
$dateFormat = DateTimeInterface::ATOM; $dateFormat = DateTimeInterface::ATOM;
/* @var User $user */ /** @var User $user */
$user = $this->userRepository->find($userId); $user = $this->userRepository->find($userId);
if (!$user) { if (!$user) {
throw new \Exception("User not found."); throw new Exception('User not found.');
} }
$personalData = []; $personalData = [];
@ -826,7 +825,7 @@ final class UserToJsonNormalizer
// Message // Message
$messages = $em->getRepository(Message::class)->findBy(['sender' => $userId]); $messages = $em->getRepository(Message::class)->findBy(['sender' => $userId]);
foreach ($messages as $item) { foreach ($messages as $item) {
$receivers = array_map(fn($receiver) => $receiver->getReceiver()->getUsername(), $item->getReceivers()->toArray()); $receivers = array_map(fn ($receiver) => $receiver->getReceiver()->getUsername(), $item->getReceivers()->toArray());
$userData['Messages'][] = [ $userData['Messages'][] = [
'Title' => $item->getTitle(), 'Title' => $item->getTitle(),
'SentDate' => $item->getSendDate()->format($dateFormat), 'SentDate' => $item->getSendDate()->format($dateFormat),

@ -218,7 +218,7 @@ class SettingsManager implements SettingsManagerInterface
} }
} }
public function load(string $schemaAlias, string $namespace = null, bool $ignoreUnknown = true): SettingsInterface public function load(string $schemaAlias, ?string $namespace = null, bool $ignoreUnknown = true): SettingsInterface
{ {
$settings = new Settings(); $settings = new Settings();
$schemaAliasNoPrefix = $schemaAlias; $schemaAliasNoPrefix = $schemaAlias;

@ -39,7 +39,7 @@ class CategorizedExerciseResultStateProvider implements ProviderInterface
/** /**
* @throws Exception * @throws Exception
*/ */
public function provide(Operation $operation, array $uriVariables = [], array $context = []): null|array|object public function provide(Operation $operation, array $uriVariables = [], array $context = []): array|object|null
{ {
$trackExercise = $this->entityManager->find(TrackEExercise::class, $uriVariables['exeId']); $trackExercise = $this->entityManager->find(TrackEExercise::class, $uriVariables['exeId']);

@ -152,7 +152,7 @@ trait CourseControllerTrait
return $this->session; return $this->session;
} }
public function setSession(Session $session = null): void public function setSession(?Session $session = null): void
{ {
$this->session = $session; $this->session = $session;
} }

@ -16,7 +16,6 @@ use Doctrine\ORM\EntityNotFoundException;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Exception\AccessDeniedException; use Symfony\Component\Security\Core\Exception\AccessDeniedException;
use Symfony\Component\Security\Core\User\UserInterface;
trait ResourceControllerTrait trait ResourceControllerTrait
{ {
@ -48,7 +47,7 @@ trait ResourceControllerTrait
return $this->getResourceRepositoryFactory()->getRepositoryService($tool, $type); return $this->getResourceRepositoryFactory()->getRepositoryService($tool, $type);
} }
public function denyAccessUnlessValidResource(ResourceInterface $resource = null): void public function denyAccessUnlessValidResource(?ResourceInterface $resource = null): void
{ {
if (null === $resource) { if (null === $resource) {
throw new EntityNotFoundException($this->trans("Resource doesn't exists.")); throw new EntityNotFoundException($this->trans("Resource doesn't exists."));
@ -112,9 +111,6 @@ trait ResourceControllerTrait
return $parentResourceNode; return $parentResourceNode;
} }
/**
* @return ?User
*/
protected function getUser(): ?User protected function getUser(): ?User
{ {
/*if (!$this->container->has('security.token_storage')) { /*if (!$this->container->has('security.token_storage')) {

@ -20,7 +20,7 @@ interface CourseControllerInterface
{ {
public function setCourse(Course $course): void; public function setCourse(Course $course): void;
public function setSession(Session $session = null): void; public function setSession(?Session $session = null): void;
public function getCourse(): ?Course; public function getCourse(): ?Course;

@ -180,7 +180,7 @@ class CForum extends AbstractResource implements ResourceInterface, Stringable
return $this->forumPosts; return $this->forumPosts;
} }
public function setForumCategory(CForumCategory $forumCategory = null): self public function setForumCategory(?CForumCategory $forumCategory = null): self
{ {
$forumCategory?->getForums()->add($this); $forumCategory?->getForums()->add($this);
$this->forumCategory = $forumCategory; $this->forumCategory = $forumCategory;

@ -124,7 +124,7 @@ class CForumPost extends AbstractResource implements ResourceInterface, Stringab
return $this->postText; return $this->postText;
} }
public function setThread(CForumThread $thread = null): self public function setThread(?CForumThread $thread = null): self
{ {
if (null !== $thread) { if (null !== $thread) {
$thread->getPosts()->add($this); $thread->getPosts()->add($this);

@ -140,7 +140,7 @@ class CForumThread extends AbstractResource implements ResourceInterface, String
return $this->title; return $this->title;
} }
public function setForum(CForum $forum = null): self public function setForum(?CForum $forum = null): self
{ {
if (null !== $forum) { if (null !== $forum) {
$forum->getThreads()->add($this); $forum->getThreads()->add($this);

@ -320,7 +320,7 @@ class CGroup extends AbstractResource implements ResourceInterface, Stringable
{ {
return $this->category; return $this->category;
} }
public function setCategory(CGroupCategory $category = null): self public function setCategory(?CGroupCategory $category = null): self
{ {
$this->category = $category; $this->category = $category;

@ -513,7 +513,7 @@ class CLp extends AbstractResource implements ResourceInterface, ResourceShowCou
return null !== $this->category; return null !== $this->category;
} }
public function setCategory(CLpCategory $category = null): self public function setCategory(?CLpCategory $category = null): self
{ {
$this->category = $category; $this->category = $category;

@ -238,7 +238,7 @@ class CSurvey extends AbstractResource implements ResourceInterface, Stringable
return $this->availFrom; return $this->availFrom;
} }
public function setAvailFrom(DateTime $availFrom = null): self public function setAvailFrom(?DateTime $availFrom = null): self
{ {
if (null === $availFrom) { if (null === $availFrom) {
$availFrom = new DateTime(); $availFrom = new DateTime();
@ -253,7 +253,7 @@ class CSurvey extends AbstractResource implements ResourceInterface, Stringable
return $this->availTill; return $this->availTill;
} }
public function setAvailTill(DateTime $availTill = null): self public function setAvailTill(?DateTime $availTill = null): self
{ {
if (null === $availTill) { if (null === $availTill) {
$availTill = new DateTime(); $availTill = new DateTime();

@ -125,7 +125,7 @@ class CSurveyAnswer
return $this->sessionId; return $this->sessionId;
} }
public function setSessionId(int $sessionId = null): static public function setSessionId(?int $sessionId = null): static
{ {
$this->sessionId = $sessionId; $this->sessionId = $sessionId;

@ -124,7 +124,7 @@ class CTool extends AbstractResource implements ResourceInterface, ResourceShowC
return $this->session; return $this->session;
} }
public function setSession(Session $session = null): self public function setSession(?Session $session = null): self
{ {
$this->session = $session; $this->session = $session;

@ -30,8 +30,8 @@ final class CCalendarEventRepository extends ResourceRepository
DateTime $endDate, DateTime $endDate,
array $users, array $users,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
): CCalendarEvent { ): CCalendarEvent {
$event = (new CCalendarEvent()) $event = (new CCalendarEvent())
->setTitle($announcement->getTitle()) ->setTitle($announcement->getTitle())

@ -20,7 +20,7 @@ final class CCourseDescriptionRepository extends ResourceRepository
parent::__construct($registry, CCourseDescription::class); parent::__construct($registry, CCourseDescription::class);
} }
public function findByTypeInCourse(int $type, Course $course, Session $session = null, CGroup $group = null): array public function findByTypeInCourse(int $type, Course $course, ?Session $session = null, ?CGroup $group = null): array
{ {
$qb = $this->getResourcesByCourse($course, $session, $group) $qb = $this->getResourcesByCourse($course, $session, $group)
->andWhere('resource.descriptionType = :description_type') ->andWhere('resource.descriptionType = :description_type')

@ -39,7 +39,7 @@ final class CDocumentRepository extends ResourceRepository
return null; return null;
} }
public function getFolderSize(ResourceNode $resourceNode, Course $course, Session $session = null): int public function getFolderSize(ResourceNode $resourceNode, Course $course, ?Session $session = null): int
{ {
return $this->getResourceNodeRepository()->getSize($resourceNode, $this->getResourceType(), $course, $session); return $this->getResourceNodeRepository()->getSize($resourceNode, $this->getResourceType(), $course, $session);
} }
@ -65,7 +65,7 @@ final class CDocumentRepository extends ResourceRepository
return $query->getResult(); return $query->getResult();
} }
public function countUserDocuments(User $user, Course $course, Session $session = null, CGroup $group = null): int public function countUserDocuments(User $user, Course $course, ?Session $session = null, ?CGroup $group = null): int
{ {
$qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session, $group); $qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session, $group);
@ -77,7 +77,7 @@ final class CDocumentRepository extends ResourceRepository
return $this->getCount($qb); return $this->getCount($qb);
} }
protected function addFileTypeQueryBuilder(string $fileType, QueryBuilder $qb = null): QueryBuilder protected function addFileTypeQueryBuilder(string $fileType, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
$qb $qb

@ -20,7 +20,7 @@ class CForumCategoryRepository extends ResourceRepository
parent::__construct($registry, CForumCategory::class); parent::__construct($registry, CForumCategory::class);
} }
public function getForumCategoryByTitle(string $title, Course $course, Session $session = null): ?ResourceInterface public function getForumCategoryByTitle(string $title, Course $course, ?Session $session = null): ?ResourceInterface
{ {
return $this->findCourseResourceByTitle( return $this->findCourseResourceByTitle(
$title, $title,

@ -23,14 +23,14 @@ class CForumPostRepository extends ResourceRepository
parent::__construct($registry, CForumPost::class); parent::__construct($registry, CForumPost::class);
} }
public function countCourseForumPosts(Course $course, Session $session = null): int public function countCourseForumPosts(Course $course, ?Session $session = null): int
{ {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
return $this->getCount($qb); return $this->getCount($qb);
} }
public function countUserForumPosts(User $user, Course $course, Session $session = null): int public function countUserForumPosts(User $user, Course $course, ?Session $session = null): int
{ {
$qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session); $qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session);

@ -21,7 +21,7 @@ class CForumThreadRepository extends ResourceRepository
parent::__construct($registry, CForumThread::class); parent::__construct($registry, CForumThread::class);
} }
public function getForumThread(string $title, Course $course, Session $session = null): ?CForumThread public function getForumThread(string $title, Course $course, ?Session $session = null): ?CForumThread
{ {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
$qb $qb
@ -34,8 +34,8 @@ class CForumThreadRepository extends ResourceRepository
public function findAllByCourse( public function findAllByCourse(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
string $title = null ?string $title = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
@ -73,7 +73,8 @@ class CForumThreadRepository extends ResourceRepository
WHERE fn.cId = :courseId AND fn.userId = :userId WHERE fn.cId = :courseId AND fn.userId = :userId
)') )')
->setParameter('courseId', $courseId) ->setParameter('courseId', $courseId)
->setParameter('userId', $userId); ->setParameter('userId', $userId)
;
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
} }

@ -22,10 +22,10 @@ final class CGroupRepository extends ResourceRepository
public function findAllByCourse( public function findAllByCourse(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
string $title = null, ?string $title = null,
int $status = null, ?int $status = null,
int $categoryId = null ?int $categoryId = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
@ -45,7 +45,7 @@ final class CGroupRepository extends ResourceRepository
); );
} }
private function addStatusQueryBuilder(int $status = null, QueryBuilder $qb = null): QueryBuilder private function addStatusQueryBuilder(?int $status = null, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
@ -59,7 +59,7 @@ final class CGroupRepository extends ResourceRepository
return $qb; return $qb;
} }
private function addCategoryQueryBuilder(int $categoryId = null, QueryBuilder $qb = null): QueryBuilder private function addCategoryQueryBuilder(?int $categoryId = null, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);

@ -29,7 +29,7 @@ final class CLpRelUserRepository extends ResourceRepository
public function getUsersSubscribedToItem( public function getUsersSubscribedToItem(
CLp $lp, CLp $lp,
Course $course, Course $course,
Session $session = null ?Session $session = null
) { ) {
$criteria = [ $criteria = [
'lp' => $lp, 'lp' => $lp,
@ -50,7 +50,7 @@ final class CLpRelUserRepository extends ResourceRepository
public function subscribeUsersToItem( public function subscribeUsersToItem(
$currentUser, $currentUser,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CLp $lp, CLp $lp,
$newUserList = [], $newUserList = [],
$deleteUsers = true $deleteUsers = true
@ -122,7 +122,7 @@ final class CLpRelUserRepository extends ResourceRepository
*/ */
public function unsubcribeUsersToItem( public function unsubcribeUsersToItem(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CLp $lp, CLp $lp,
$usersToDelete $usersToDelete
): void { ): void {

@ -42,7 +42,7 @@ final class CLpRepository extends ResourceRepository implements ResourceWithLink
$this->create($lp); $this->create($lp);
} }
public function findForumByCourse(CLp $lp, Course $course, Session $session = null): ?CForum public function findForumByCourse(CLp $lp, Course $course, ?Session $session = null): ?CForum
{ {
$forums = $lp->getForums(); $forums = $lp->getForums();
$result = null; $result = null;
@ -62,11 +62,11 @@ final class CLpRepository extends ResourceRepository implements ResourceWithLink
public function findAllByCourse( public function findAllByCourse(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
string $title = null, ?string $title = null,
int $active = null, ?int $active = null,
bool $onlyPublished = true, bool $onlyPublished = true,
int $categoryId = null ?int $categoryId = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
@ -95,7 +95,7 @@ final class CLpRepository extends ResourceRepository implements ResourceWithLink
return $router->generate('legacy_main', $params); return $router->generate('legacy_main', $params);
} }
protected function addNotDeletedQueryBuilder(QueryBuilder $qb = null): QueryBuilder protected function addNotDeletedQueryBuilder(?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);

@ -28,7 +28,7 @@ class CNotebookRepository extends ResourceRepository
public function findByUser( public function findByUser(
User $user, User $user,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
string $orderField = 'creation_date', string $orderField = 'creation_date',
string $orderDirection = 'DESC' string $orderDirection = 'DESC'
) { ) {

@ -26,11 +26,11 @@ final class CQuizRepository extends ResourceRepository implements ResourceWithLi
public function findAllByCourse( public function findAllByCourse(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
string $title = null, ?string $title = null,
int $active = null, ?int $active = null,
bool $onlyPublished = true, bool $onlyPublished = true,
int $categoryId = null ?int $categoryId = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
@ -58,7 +58,7 @@ final class CQuizRepository extends ResourceRepository implements ResourceWithLi
return $router->generate('legacy_main', $params); return $router->generate('legacy_main', $params);
} }
private function addDateFilterQueryBuilder(DateTime $dateTime, QueryBuilder $qb = null): QueryBuilder private function addDateFilterQueryBuilder(DateTime $dateTime, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
$qb $qb
@ -80,7 +80,7 @@ final class CQuizRepository extends ResourceRepository implements ResourceWithLi
return $qb; return $qb;
} }
private function addNotDeletedQueryBuilder(QueryBuilder $qb = null): QueryBuilder private function addNotDeletedQueryBuilder(?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
@ -89,7 +89,7 @@ final class CQuizRepository extends ResourceRepository implements ResourceWithLi
return $qb; return $qb;
} }
private function addCategoryQueryBuilder(int $categoryId = null, QueryBuilder $qb = null): QueryBuilder private function addCategoryQueryBuilder(?int $categoryId = null, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
@ -114,7 +114,7 @@ final class CQuizRepository extends ResourceRepository implements ResourceWithLi
* - 1 = active exercises * - 1 = active exercises
* - 2 = all exercises (active and inactive) * - 2 = all exercises (active and inactive)
*/ */
private function addActiveQueryBuilder(int $active = null, QueryBuilder $qb = null): QueryBuilder private function addActiveQueryBuilder(?int $active = null, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);

@ -30,7 +30,7 @@ final class CShortcutRepository extends ResourceRepository
return $this->findOneBy($criteria); return $this->findOneBy($criteria);
} }
public function addShortCut(ResourceInterface $resource, User $user, Course $course, Session $session = null): CShortcut public function addShortCut(ResourceInterface $resource, User $user, Course $course, ?Session $session = null): CShortcut
{ {
$shortcut = $this->getShortcutFromResource($resource); $shortcut = $this->getShortcutFromResource($resource);
@ -55,7 +55,7 @@ final class CShortcutRepository extends ResourceRepository
$shortcut = $this->getShortcutFromResource($resource); $shortcut = $this->getShortcutFromResource($resource);
if (null !== $shortcut) { if (null !== $shortcut) {
$em->remove($shortcut); $em->remove($shortcut);
//$em->flush(); // $em->flush();
return true; return true;
} }

@ -25,10 +25,10 @@ final class CStudentPublicationRepository extends ResourceRepository
public function findAllByCourse( public function findAllByCourse(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
string $title = null, ?string $title = null,
int $active = null, ?int $active = null,
string $fileType = null ?string $fileType = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
@ -42,9 +42,9 @@ final class CStudentPublicationRepository extends ResourceRepository
public function getStudentAssignments( public function getStudentAssignments(
CStudentPublication $publication, CStudentPublication $publication,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null, ?CGroup $group = null,
User $user = null ?User $user = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session, $group); $qb = $this->getResourcesByCourse($course, $session, $group);
@ -57,7 +57,7 @@ final class CStudentPublicationRepository extends ResourceRepository
return $qb; return $qb;
} }
public function getStudentPublicationByUser(User $user, Course $course, Session $session = null): array public function getStudentPublicationByUser(User $user, Course $course, ?Session $session = null): array
{ {
$qb = $this->findAllByCourse($course, $session); $qb = $this->findAllByCourse($course, $session);
@ -77,8 +77,8 @@ final class CStudentPublicationRepository extends ResourceRepository
public function countUserPublications( public function countUserPublications(
User $user, User $user,
Course $course, Course $course,
Session $session = null, ?Session $session = null,
CGroup $group = null ?CGroup $group = null
): int { ): int {
$qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session); $qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session);
$qb->andWhere('resource.publicationParent IS NOT NULL'); $qb->andWhere('resource.publicationParent IS NOT NULL');
@ -86,7 +86,7 @@ final class CStudentPublicationRepository extends ResourceRepository
return $this->getCount($qb); return $this->getCount($qb);
} }
public function countCoursePublications(Course $course, Session $session = null, CGroup $group = null): int public function countCoursePublications(Course $course, ?Session $session = null, ?CGroup $group = null): int
{ {
$qb = $this->getResourcesByCourse($course, $session, $group); $qb = $this->getResourcesByCourse($course, $session, $group);
@ -98,7 +98,7 @@ final class CStudentPublicationRepository extends ResourceRepository
/** /**
* Find all the works registered by a teacher. * Find all the works registered by a teacher.
*/ */
public function findWorksByTeacher(User $user, Course $course, Session $session = null): array public function findWorksByTeacher(User $user, Course $course, ?Session $session = null): array
{ {
$qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session); $qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session);
$qb->andWhere('resource.publicationParent IS NOT NULL'); $qb->andWhere('resource.publicationParent IS NOT NULL');
@ -110,7 +110,7 @@ final class CStudentPublicationRepository extends ResourceRepository
; ;
} }
private function addActiveQueryBuilder(int $active = null, QueryBuilder $qb = null): void private function addActiveQueryBuilder(?int $active = null, ?QueryBuilder $qb = null): void
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
@ -122,7 +122,7 @@ final class CStudentPublicationRepository extends ResourceRepository
} }
} }
private function addNotDeletedPublicationQueryBuilder(QueryBuilder $qb = null): void private function addNotDeletedPublicationQueryBuilder(?QueryBuilder $qb = null): void
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
$qb $qb
@ -130,7 +130,7 @@ final class CStudentPublicationRepository extends ResourceRepository
; ;
} }
private function addFileTypeQueryBuilder(?string $fileType, QueryBuilder $qb = null): void private function addFileTypeQueryBuilder(?string $fileType, ?QueryBuilder $qb = null): void
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
if (null === $fileType) { if (null === $fileType) {

@ -28,10 +28,10 @@ final class CSurveyRepository extends ResourceRepository
public function findAllByCourse( public function findAllByCourse(
Course $course, Course $course,
Session $session = null, ?Session $session = null,
string $title = null, ?string $title = null,
string $language = null, ?string $language = null,
User $author = null ?User $author = null
): QueryBuilder { ): QueryBuilder {
$qb = $this->getResourcesByCourse($course, $session); $qb = $this->getResourcesByCourse($course, $session);
@ -42,7 +42,7 @@ final class CSurveyRepository extends ResourceRepository
return $qb; return $qb;
} }
protected function addTitleQueryBuilder(?string $title, QueryBuilder $qb = null): QueryBuilder protected function addTitleQueryBuilder(?string $title, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);
if (null === $title) { if (null === $title) {
@ -58,7 +58,7 @@ final class CSurveyRepository extends ResourceRepository
return $qb; return $qb;
} }
private function addLanguageQueryBuilder(string $language = null, QueryBuilder $qb = null): QueryBuilder private function addLanguageQueryBuilder(?string $language = null, ?QueryBuilder $qb = null): QueryBuilder
{ {
$qb = $this->getOrCreateQueryBuilder($qb); $qb = $this->getOrCreateQueryBuilder($qb);

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save