Fix arguments, fix type hint

pull/3844/head
Julio Montoya 5 years ago
parent b486e64043
commit f597d45d24
  1. 4
      src/CoreBundle/Entity/AbstractResource.php
  2. 4
      src/CoreBundle/Entity/Listener/CourseListener.php
  3. 2
      src/CoreBundle/Entity/Listener/ResourceListener.php
  4. 2
      src/CoreBundle/Entity/Listener/ResourceNodeListener.php
  5. 4
      src/CoreBundle/Entity/Listener/SessionListener.php
  6. 8
      src/CoreBundle/EventListener/CourseListener.php
  7. 1
      src/CoreBundle/EventListener/HTTPExceptionListener.php
  8. 3
      src/CoreBundle/EventListener/LoginSuccessHandler.php
  9. 2
      src/CoreBundle/EventListener/LogoutListener.php
  10. 2
      src/CoreBundle/EventSubscriber/LocaleSubscriber.php
  11. 3
      src/CoreBundle/Form/BranchType.php
  12. 2
      src/CoreBundle/Form/DataTransformer/ResourceToIdentifierTransformer.php
  13. 2
      src/CoreBundle/Form/JuryMembersType.php
  14. 2
      src/CoreBundle/Form/JuryType.php
  15. 3
      src/CoreBundle/Form/ProfileFosUserType.php
  16. 3
      src/CoreBundle/Form/ProfileType.php
  17. 11
      src/CoreBundle/Form/SessionTreeType.php
  18. 2
      src/CoreBundle/Form/SessionType.php
  19. 2
      src/CoreBundle/Form/Type/CourseType.php
  20. 3
      src/CoreBundle/Form/Type/ResourceLinkType.php
  21. 3
      src/CoreBundle/Form/Type/ResourceNodeType.php
  22. 2
      src/CoreBundle/Form/Type/ResourceRightType.php
  23. 18
      src/CoreBundle/Framework/Container.php
  24. 5
      src/CoreBundle/Framework/Exporter.php
  25. 2
      src/CoreBundle/Repository/ExtraFieldRelTagRepository.php
  26. 2
      src/CoreBundle/Repository/ExtraFieldValuesRepository.php
  27. 2
      src/CoreBundle/Repository/LegalRepository.php
  28. 1
      src/CoreBundle/Repository/Node/AccessUrlRepository.php
  29. 4
      src/CoreBundle/Repository/Node/CourseRepository.php
  30. 4
      src/CoreBundle/Repository/Node/IllustrationRepository.php
  31. 7
      src/CoreBundle/Repository/Node/UserRepository.php
  32. 4
      src/CoreBundle/Repository/ResourceFactory.php
  33. 2
      src/CoreBundle/Repository/ResourceNodeRepository.php
  34. 8
      src/CoreBundle/Repository/ResourceRepository.php
  35. 11
      src/CoreBundle/Repository/SequenceRepository.php
  36. 25
      src/CoreBundle/Repository/SequenceResourceRepository.php
  37. 28
      src/CoreBundle/Security/Authorization/Voter/ResourceNodeVoter.php
  38. 7
      src/CoreBundle/Security/Authorization/Voter/SessionVoter.php
  39. 14
      src/CoreBundle/Tool/AbstractTool.php
  40. 13
      src/CoreBundle/Traits/ControllerTrait.php
  41. 2
      src/CoreBundle/Traits/CourseControllerTrait.php
  42. 4
      src/CoreBundle/Traits/ResourceControllerTrait.php
  43. 2
      src/CoreBundle/Traits/SessionTrait.php
  44. 4
      src/CourseBundle/Repository/CDocumentRepository.php
  45. 4
      src/CourseBundle/Repository/CExerciseCategoryRepository.php
  46. 11
      src/CourseBundle/Repository/CForumPostRepository.php
  47. 7
      src/CourseBundle/Repository/CNotebookRepository.php
  48. 2
      src/CourseBundle/Repository/CToolRepository.php
  49. 2
      src/CourseBundle/Settings/SettingsCourseManager.php

@ -306,7 +306,7 @@ abstract class AbstractResource
return null !== $this->parentResourceNode && 0 !== $this->parentResourceNode; return null !== $this->parentResourceNode && 0 !== $this->parentResourceNode;
} }
public function setParentResourceNode($resourceNode): self public function setParentResourceNode(?int $resourceNode): self
{ {
$this->parentResourceNode = $resourceNode; $this->parentResourceNode = $resourceNode;
@ -328,7 +328,7 @@ abstract class AbstractResource
return $this->uploadFile; return $this->uploadFile;
} }
public function setUploadFile($file): self public function setUploadFile(?UploadedFile $file): self
{ {
$this->uploadFile = $file; $this->uploadFile = $file;

@ -84,11 +84,9 @@ class CourseListener
} }
/** /**
* @param CourseRepository $repo
*
* @throws Exception * @throws Exception
*/ */
protected function checkLimit($repo, Course $course, AccessUrl $url): void protected function checkLimit(CourseRepository $repo, Course $course, AccessUrl $url): void
{ {
$limit = $url->getLimitCourses(); $limit = $url->getLimitCourses();

@ -123,7 +123,7 @@ class ResourceListener
]); ]);
if (null === $resourceType) { if (null === $resourceType) {
throw new InvalidArgumentException("ResourceType: {$name} not found"); throw new InvalidArgumentException(sprintf('ResourceType: %s not found', $name));
} }
$resourceNode $resourceNode

@ -55,7 +55,7 @@ class ResourceNodeListener
if ($resourceNode->hasResourceFile() && $resourceNode->hasEditableTextContent()) { if ($resourceNode->hasResourceFile() && $resourceNode->hasEditableTextContent()) {
$fileName = $this->resourceNodeRepository->getFilename($resourceNode->getResourceFile()); $fileName = $this->resourceNodeRepository->getFilename($resourceNode->getResourceFile());
error_log("fileName: {$fileName}"); error_log(sprintf('fileName: %s', $fileName));
if ($fileName) { if ($fileName) {
error_log('updated'); error_log('updated');
$content = $resourceNode->getContent(); $content = $resourceNode->getContent();

@ -56,11 +56,9 @@ class SessionListener
} }
/** /**
* @param SessionRepository $repo
*
* @throws Exception * @throws Exception
*/ */
protected function checkLimit($repo, AccessUrl $url): void protected function checkLimit(SessionRepository $repo, AccessUrl $url): void
{ {
$limit = $url->getLimitSessions(); $limit = $url->getLimitSessions();

@ -328,13 +328,7 @@ class CourseListener
//$request->setLocale($request->getPreferredLanguage()); //$request->setLocale($request->getPreferredLanguage());
} }
/** private function generateCourseUrl(?Course $course, int $sessionId, int $groupId, string $origin): string
* @param null|Course $course
* @param int $sessionId
* @param int $groupId
* @param string $origin
*/
private function generateCourseUrl($course, $sessionId, $groupId, $origin): string
{ {
if (null !== $course) { if (null !== $course) {
$cidReqURL = '&cid='.$course->getId(); $cidReqURL = '&cid='.$course->getId();

@ -25,6 +25,7 @@ final class HTTPExceptionListener
'error' => $exception->getMessage(), 'error' => $exception->getMessage(),
]); ]);
$response->setStatusCode($exception->getStatusCode()); $response->setStatusCode($exception->getStatusCode());
$event->setResponse($response); $event->setResponse($response);
} }
} }

@ -37,9 +37,8 @@ class LoginSuccessHandler
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event) public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{ {
$request = $event->getRequest(); $request = $event->getRequest();
$user = $event->getAuthenticationToken()->getUser();
/** @var User $user */ /** @var User $user */
//$user = $token->getUser(); $user = $event->getAuthenticationToken()->getUser();
$userId = $user->getId(); $userId = $user->getId();
$session = $request->getSession(); $session = $request->getSession();

@ -83,7 +83,7 @@ class LogoutListener
} }
$online_table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE); $online_table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE);
$sql = 'DELETE FROM '.$online_table." WHERE login_user_id = {$userId}"; $sql = "DELETE FROM $online_table WHERE login_user_id = $userId";
$connection->executeQuery($sql); $connection->executeQuery($sql);
} }

@ -108,7 +108,7 @@ class LocaleSubscriber implements EventSubscriberInterface
$locale = ''; $locale = '';
foreach ($priorityList as $setting) { foreach ($priorityList as $setting) {
$priority = $this->settingsManager->getSetting("language.{$setting}"); $priority = $this->settingsManager->getSetting(sprintf('language.%s', $setting));
if (!empty($priority) && isset($localeList[$priority])) { if (!empty($priority) && isset($localeList[$priority])) {
$locale = $localeList[$priority]; $locale = $localeList[$priority];

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Form; namespace Chamilo\CoreBundle\Form;
use Chamilo\CoreBundle\Entity\BranchSync;
use DateTime; use DateTime;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType; use Symfony\Component\Form\Extension\Core\Type\EmailType;
@ -84,7 +85,7 @@ class BranchType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\BranchSync', 'data_class' => BranchSync::class,
] ]
); );
} }

@ -16,7 +16,7 @@ final class ResourceToIdentifierTransformer implements DataTransformerInterface
private string $identifier; private string $identifier;
public function __construct($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';

@ -29,7 +29,7 @@ class JuryMembersType extends AbstractType
return $er->createQueryBuilder('u') return $er->createQueryBuilder('u')
->where('u.role LIKE :role') ->where('u.role LIKE :role')
->setParameter(':role', 'ROLE_JURY%') ->setParameter(':role', 'ROLE_JURY%')
->orderBy('u.name', 'DESC') ->orderBy('u.name', \Doctrine\Common\Collections\Criteria::DESC)
; ;
}, },
] ]

@ -45,7 +45,7 @@ class JuryType extends AbstractType
return $er->createQueryBuilder('u') return $er->createQueryBuilder('u')
//->where('u.role LIKE :role') //->where('u.role LIKE :role')
//->setParameter(':role', 'ROLE_JURY%') //->setParameter(':role', 'ROLE_JURY%')
->orderBy('u.branchName', 'DESC') ->orderBy('u.branchName', \Doctrine\Common\Collections\Criteria::DESC)
; ;
}, },
] ]

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Form; namespace Chamilo\CoreBundle\Form;
use Chamilo\CoreBundle\Entity\User;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
@ -29,7 +30,7 @@ class ProfileFosUserType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\User', 'data_class' => User::class,
] ]
); );
} }

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Form; namespace Chamilo\CoreBundle\Form;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Form\Type\IllustrationType; use Chamilo\CoreBundle\Form\Type\IllustrationType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType; use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
@ -163,7 +164,7 @@ class ProfileType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\User', 'data_class' => User::class,
] ]
); );
} }

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Form; namespace Chamilo\CoreBundle\Form;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
@ -33,7 +34,7 @@ class SessionTreeType extends AbstractType
'property' => 'name', 'property' => 'name',
'query_builder' => function (EntityRepository $er) { 'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u') return $er->createQueryBuilder('u')
->orderBy('u.name', 'DESC') ->orderBy('u.name', Criteria::DESC)
; ;
}, },
] ]
@ -47,7 +48,7 @@ class SessionTreeType extends AbstractType
'property' => 'name', 'property' => 'name',
'query_builder' => function (EntityRepository $er) { 'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u') return $er->createQueryBuilder('u')
->orderBy('u.name', 'DESC') ->orderBy('u.name', Criteria::DESC)
; ;
}, },
] ]
@ -61,7 +62,7 @@ class SessionTreeType extends AbstractType
'property' => 'name', 'property' => 'name',
'query_builder' => function (EntityRepository $er) { 'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u') return $er->createQueryBuilder('u')
->orderBy('u.name', 'DESC') ->orderBy('u.name', Criteria::DESC)
; ;
}, },
] ]
@ -75,7 +76,7 @@ class SessionTreeType extends AbstractType
'property' => 'name', 'property' => 'name',
'query_builder' => function (EntityRepository $er) { 'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u') return $er->createQueryBuilder('u')
->orderBy('u.name', 'DESC') ->orderBy('u.name', Criteria::DESC)
; ;
}, },
] ]
@ -89,7 +90,7 @@ class SessionTreeType extends AbstractType
'property' => 'title', 'property' => 'title',
'query_builder' => function (EntityRepository $er) { 'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u') return $er->createQueryBuilder('u')
->orderBy('u.title', 'DESC') ->orderBy('u.title', Criteria::DESC)
; ;
}, },
] ]

@ -72,7 +72,7 @@ class SessionType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\Session', 'data_class' => Session::class,
] ]
); );
} }

@ -84,7 +84,7 @@ class CourseType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\Course', 'data_class' => Course::class,
] ]
); );
} }

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Form\Type; namespace Chamilo\CoreBundle\Form\Type;
use Chamilo\CoreBundle\Entity\ResourceLink;
use Chamilo\CoreBundle\Entity\ToolResourceRight; use Chamilo\CoreBundle\Entity\ToolResourceRight;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
@ -73,7 +74,7 @@ class ResourceLinkType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\ResourceLink', 'data_class' => ResourceLink::class,
] ]
); );
} }

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Form\Type; namespace Chamilo\CoreBundle\Form\Type;
use Chamilo\CoreBundle\Entity\ResourceNode;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
@ -30,7 +31,7 @@ class ResourceNodeType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\ResourceNode', 'data_class' => ResourceNode::class,
] ]
); );
} }

@ -37,7 +37,7 @@ class ResourceRightType extends AbstractType
{ {
$resolver->setDefaults( $resolver->setDefaults(
[ [
'data_class' => 'Chamilo\CoreBundle\Entity\ResourceRight', 'data_class' => ResourceRight::class,
] ]
); );
} }

@ -86,18 +86,12 @@ class Container
public static Environment $twig; public static Environment $twig;
public static string $legacyTemplate = '@ChamiloCore/Layout/layout_one_col.html.twig'; public static string $legacyTemplate = '@ChamiloCore/Layout/layout_one_col.html.twig';
/** public static function setContainer(ContainerInterface $container): void
* @param ContainerInterface $container
*/
public static function setContainer($container): void
{ {
self::$container = $container; self::$container = $container;
} }
/** public static function getParameter(string $parameter)
* @param string $parameter
*/
public static function getParameter($parameter)
{ {
if (self::$container->hasParameter($parameter)) { if (self::$container->hasParameter($parameter)) {
return self::$container->getParameter($parameter); return self::$container->getParameter($parameter);
@ -176,10 +170,7 @@ class Container
return self::$container->get('request_stack')->getCurrentRequest(); return self::$container->get('request_stack')->getCurrentRequest();
} }
/** public static function setRequest(Request $request): void
* @param Request $request
*/
public static function setRequest($request): void
{ {
self::$request = $request; self::$request = $request;
} }
@ -485,10 +476,9 @@ class Container
} }
/** /**
* @param string $message
* @param string $type error|success|warning|danger * @param string $type error|success|warning|danger
*/ */
public static function addFlash($message, $type = 'success'): void public static function addFlash(string $message, string $type = 'success'): void
{ {
$session = self::getSession(); $session = self::getSession();
$session->getFlashBag()->add($type, $message); $session->getFlashBag()->add($type, $message);

@ -18,14 +18,11 @@ use Symfony\Component\HttpFoundation\StreamedResponse;
class Exporter class Exporter
{ {
/** /**
* @param string $format
* @param string $filename
*
* @throws RuntimeException * @throws RuntimeException
* *
* @return StreamedResponse * @return StreamedResponse
*/ */
public function getResponse($format, $filename, SourceIteratorInterface $source) public function getResponse(string $format, string $filename, SourceIteratorInterface $source)
{ {
switch ($format) { switch ($format) {
case 'xls': case 'xls':

@ -32,7 +32,7 @@ class ExtraFieldRelTagRepository extends ServiceEntityRepository
* *
* @return array * @return array
*/ */
public function getTags(ExtraField $extraField, $itemId) public function getTags(ExtraField $extraField, int $itemId)
{ {
$queryBuilder = $this->createQueryBuilder('ft'); $queryBuilder = $this->createQueryBuilder('ft');

@ -31,7 +31,7 @@ class ExtraFieldValuesRepository extends ServiceEntityRepository
* *
* @return array * @return array
*/ */
public function getVisibleValues($extraFieldType, $itemId) public function getVisibleValues(int $extraFieldType, int $itemId)
{ {
$queryBuilder = $this->createQueryBuilder('fv'); $queryBuilder = $this->createQueryBuilder('fv');

@ -48,7 +48,7 @@ class LegalRepository extends ServiceEntityRepository
* *
* @return array The terms for those type and language * @return array The terms for those type and language
*/ */
public function findOneByTypeAndLanguage($typeId, $languageId) public function findOneByTypeAndLanguage(int $typeId, int $languageId)
{ {
$qb = $this->createQueryBuilder('l'); $qb = $this->createQueryBuilder('l');
$qb->select('l.content') $qb->select('l.content')

@ -25,6 +25,7 @@ class AccessUrlRepository extends ResourceRepository
{ {
$qb = $this->createQueryBuilder('a'); $qb = $this->createQueryBuilder('a');
$qb->select('MIN (a.id)'); $qb->select('MIN (a.id)');
$q = $qb->getQuery(); $q = $qb->getQuery();
return (int) $q->execute(); return (int) $q->execute();

@ -96,9 +96,9 @@ class CourseRepository extends ResourceRepository
); );
if (api_is_western_name_order()) { if (api_is_western_name_order()) {
$queryBuilder->orderBy('user.firstname', 'ASC'); $queryBuilder->orderBy('user.firstname', Criteria::ASC);
} else { } else {
$queryBuilder->orderBy('user.lastname', 'ASC'); $queryBuilder->orderBy('user.lastname', Criteria::ASC);
} }
$wherePart = $queryBuilder->expr()->andx(); $wherePart = $queryBuilder->expr()->andx();

@ -68,10 +68,8 @@ final class IllustrationRepository extends ResourceRepository implements GridInt
/** /**
* @param ResourceInterface|User|UserInterface $resource * @param ResourceInterface|User|UserInterface $resource
* @param User $user
* @param string $crop
*/ */
public function addIllustration($resource, $user, UploadedFile $uploadFile = null, $crop = ''): ?ResourceFile public function addIllustration(User $resource, User $user, UploadedFile $uploadFile = null, string $crop = ''): ?ResourceFile
{ {
if (null === $uploadFile) { if (null === $uploadFile) {
return null; return null;

@ -280,7 +280,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
; ;
} }
$qb->orderBy('course.title', 'DESC'); $qb->orderBy('course.title', Criteria::DESC);
$query = $qb->getQuery(); $query = $qb->getQuery();
@ -660,6 +660,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
$user->setPassword($substitutionTerms['password']); $user->setPassword($substitutionTerms['password']);
$user->setSalt($substitutionTerms['salt']); $user->setSalt($substitutionTerms['salt']);
$noDataLabel = $substitutionTerms['empty']; $noDataLabel = $substitutionTerms['empty'];
// Dummy content // Dummy content
@ -1444,7 +1445,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
$qb->expr()->eq('l.loginUserId', $user->getId()) $qb->expr()->eq('l.loginUserId', $user->getId())
) )
->setMaxResults(1) ->setMaxResults(1)
->orderBy('l.loginDate', 'DESC') ->orderBy('l.loginDate', \Doctrine\Common\Collections\Criteria::DESC)
->getQuery() ->getQuery()
->getOneOrNullResult() ->getOneOrNullResult()
; ;
@ -1454,7 +1455,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
{ {
$qb = $this->getOrCreateQueryBuilder($qb, 'u'); $qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb->orderBy('u.firstname', 'ASC'); $qb->orderBy('u.firstname', \Doctrine\Common\Collections\Criteria::ASC);
$qb->where('u.firstname LIKE :keyword OR u.lastname LIKE :keyword '); $qb->where('u.firstname LIKE :keyword OR u.lastname LIKE :keyword ');
$qb->setParameter('keyword', "%{$keyword}%", Types::STRING); $qb->setParameter('keyword', "%{$keyword}%", Types::STRING);

@ -24,14 +24,14 @@ class ResourceFactory
$resourceTypeList = $tool->getResourceTypes(); $resourceTypeList = $tool->getResourceTypes();
if (!isset($resourceTypeList[$type])) { if (!isset($resourceTypeList[$type])) {
throw new InvalidArgumentException("Resource type doesn't exist: {$type}"); throw new InvalidArgumentException(sprintf('Resource type doesn\'t exist: %s', $type));
} }
$typeConfig = $resourceTypeList[$type]; $typeConfig = $resourceTypeList[$type];
$repo = $typeConfig['repository']; $repo = $typeConfig['repository'];
if (!class_exists($repo)) { if (!class_exists($repo)) {
throw new InvalidArgumentException("Check that this classes exists: {$repo}"); throw new InvalidArgumentException(sprintf('Check that this classes exists: %s', $repo));
} }
return $repo; return $repo;

@ -72,7 +72,7 @@ class ResourceNodeRepository extends MaterializedPathRepository
} }
return ''; return '';
} catch (Throwable $exception) { } catch (Throwable $throwable) {
throw new FileNotFoundException($resourceNode->getTitle()); throw new FileNotFoundException($resourceNode->getTitle());
} }
} }

@ -174,7 +174,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
$class = str_replace('\\Repository\\', '\\Entity\\', $class); $class = str_replace('\\Repository\\', '\\Entity\\', $class);
$class = str_replace('Repository', '', $class); $class = str_replace('Repository', '', $class);
if (!class_exists($class)) { if (!class_exists($class)) {
throw new Exception("Repo: {$class} not found "); throw new Exception(sprintf('Repo: %s not found ', $class));
} }
return $class; return $class;
@ -631,7 +631,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
$resourceNode = $resource->getResourceNode(); $resourceNode = $resource->getResourceNode();
return $this->resourceNodeRepository->getResourceNodeFileContent($resourceNode); return $this->resourceNodeRepository->getResourceNodeFileContent($resourceNode);
} catch (Throwable $exception) { } catch (Throwable $throwable) {
throw new FileNotFoundException($resource->getResourceName()); throw new FileNotFoundException($resource->getResourceName());
} }
} }
@ -689,11 +689,9 @@ abstract class ResourceRepository extends ServiceEntityRepository
} }
/** /**
* @param string $content
*
* @return bool * @return bool
*/ */
public function updateResourceFileContent(AbstractResource $resource, $content) public function updateResourceFileContent(AbstractResource $resource, string $content)
{ {
error_log('updateResourceFileContent'); error_log('updateResourceFileContent');

@ -74,17 +74,14 @@ class SequenceRepository extends ServiceEntityRepository
break; break;
} }
if ($repo) { if (null !== $repo) {
$resource = $repo->find($itemId); $resource = $repo->find($itemId);
} }
return $resource; return $resource;
} }
/** public function removeSequence(int $id): void
* @param int $id
*/
public function removeSequence($id): void
{ {
$sequence = $this->find($id); $sequence = $this->find($id);
$em = $this->getEntityManager(); $em = $this->getEntityManager();
@ -98,11 +95,9 @@ class SequenceRepository extends ServiceEntityRepository
} }
/** /**
* @param string $type
*
* @return array * @return array
*/ */
public function findAllToSelect($type) public function findAllToSelect(string $type)
{ {
$qb = $this->createQueryBuilder('r'); $qb = $this->createQueryBuilder('r');
$qb $qb

@ -27,11 +27,8 @@ class SequenceResourceRepository extends ServiceEntityRepository
/** /**
* Find the SequenceResource based in the resourceId and type. * Find the SequenceResource based in the resourceId and type.
*
* @param int $resourceId
* @param int $type
*/ */
public function findRequirementForResource($resourceId, $type): ?SequenceResource public function findRequirementForResource(int $resourceId, int $type): ?SequenceResource
{ {
return $this->findOneBy([ return $this->findOneBy([
'resourceId' => $resourceId, 'resourceId' => $resourceId,
@ -42,12 +39,9 @@ class SequenceResourceRepository extends ServiceEntityRepository
/** /**
* @todo implement for all types only work for sessions * @todo implement for all types only work for sessions
* *
* @param int $resourceId
* @param int $type
*
* @return array * @return array
*/ */
public function getRequirementAndDependencies($resourceId, $type) public function getRequirementAndDependencies(int $resourceId, int $type)
{ {
$sequence = $this->findRequirementForResource($resourceId, $type); $sequence = $this->findRequirementForResource($resourceId, $type);
$result = [ $result = [
@ -81,11 +75,8 @@ class SequenceResourceRepository extends ServiceEntityRepository
/** /**
* Deletes a node and check in all the dependencies if the node exists in * Deletes a node and check in all the dependencies if the node exists in
* order to deleted. * order to deleted.
*
* @param int $resourceId
* @param int $type
*/ */
public function deleteSequenceResource($resourceId, $type): void public function deleteSequenceResource(int $resourceId, int $type): void
{ {
$sequence = $this->findRequirementForResource($resourceId, $type); $sequence = $this->findRequirementForResource($resourceId, $type);
if ($sequence && $sequence->hasGraph()) { if ($sequence && $sequence->hasGraph()) {
@ -121,7 +112,7 @@ class SequenceResourceRepository extends ServiceEntityRepository
* *
* @return array * @return array
*/ */
public function getRequirements($resourceId, $type) public function getRequirements(int $resourceId, int $type)
{ {
$sequencesResource = $this->findBy([ $sequencesResource = $this->findBy([
'resourceId' => $resourceId, 'resourceId' => $resourceId,
@ -182,7 +173,7 @@ class SequenceResourceRepository extends ServiceEntityRepository
* *
* @return array * @return array
*/ */
public function getRequirementsAndDependenciesWithinSequences($resourceId, $type) public function getRequirementsAndDependenciesWithinSequences(int $resourceId, int $type)
{ {
$sequencesResource = $this->findBy([ $sequencesResource = $this->findBy([
'resourceId' => $resourceId, 'resourceId' => $resourceId,
@ -221,11 +212,10 @@ class SequenceResourceRepository extends ServiceEntityRepository
* *
* @param array $sequences The sequences * @param array $sequences The sequences
* @param int $type The type of sequence resource * @param int $type The type of sequence resource
* @param int $userId
* *
* @return array * @return array
*/ */
public function checkRequirementsForUser(array $sequences, $type, $userId) public function checkRequirementsForUser(array $sequences, int $type, int $userId)
{ {
$sequenceList = []; $sequenceList = [];
$em = $this->getEntityManager(); $em = $this->getEntityManager();
@ -392,11 +382,10 @@ class SequenceResourceRepository extends ServiceEntityRepository
* Get sessions from vertices. * Get sessions from vertices.
* *
* @param Vertices $verticesEdges The vertices * @param Vertices $verticesEdges The vertices
* @param int $type
* *
* @return array * @return array
*/ */
protected function findVerticesEdges(Vertices $verticesEdges, $type) protected function findVerticesEdges(Vertices $verticesEdges, int $type)
{ {
$sessionVertices = []; $sessionVertices = [];
$em = $this->getEntityManager(); $em = $this->getEntityManager();

@ -14,7 +14,7 @@ use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CourseBundle\Entity\CGroup; use Chamilo\CourseBundle\Entity\CGroup;
use Laminas\Permissions\Acl\Acl; use Laminas\Permissions\Acl\Acl;
use Laminas\Permissions\Acl\Resource\GenericResource; use Laminas\Permissions\Acl\Resource\GenericResource;
use Laminas\Permissions\Acl\Role\GenericRole as Role; use Laminas\Permissions\Acl\Role\GenericRole;
use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Security\Acl\Permission\MaskBuilder; use Symfony\Component\Security\Acl\Permission\MaskBuilder;
use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken; use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;
@ -30,7 +30,6 @@ class ResourceNodeVoter extends Voter
public const EDIT = 'EDIT'; public const EDIT = 'EDIT';
public const DELETE = 'DELETE'; public const DELETE = 'DELETE';
public const EXPORT = 'EXPORT'; public const EXPORT = 'EXPORT';
public const ROLE_CURRENT_COURSE_TEACHER = 'ROLE_CURRENT_COURSE_TEACHER'; public const ROLE_CURRENT_COURSE_TEACHER = 'ROLE_CURRENT_COURSE_TEACHER';
public const ROLE_CURRENT_COURSE_STUDENT = 'ROLE_CURRENT_COURSE_STUDENT'; public const ROLE_CURRENT_COURSE_STUDENT = 'ROLE_CURRENT_COURSE_STUDENT';
public const ROLE_CURRENT_COURSE_GROUP_TEACHER = 'ROLE_CURRENT_COURSE_GROUP_TEACHER'; public const ROLE_CURRENT_COURSE_GROUP_TEACHER = 'ROLE_CURRENT_COURSE_GROUP_TEACHER';
@ -358,26 +357,27 @@ class ResourceNodeVoter extends Voter
// Asked mask // Asked mask
$mask = new MaskBuilder(); $mask = new MaskBuilder();
$mask->add($attribute); $mask->add($attribute);
$askedMask = (string) $mask->get(); $askedMask = (string) $mask->get();
// Creating roles // Creating roles
// @todo move this in a service // @todo move this in a service
$anon = new Role('IS_AUTHENTICATED_ANONYMOUSLY'); $anon = new GenericRole('IS_AUTHENTICATED_ANONYMOUSLY');
$userRole = new Role('ROLE_USER'); $userRole = new GenericRole('ROLE_USER');
$student = new Role('ROLE_STUDENT'); $student = new GenericRole('ROLE_STUDENT');
$teacher = new Role('ROLE_TEACHER'); $teacher = new GenericRole('ROLE_TEACHER');
$currentStudent = new Role(self::ROLE_CURRENT_COURSE_STUDENT); $currentStudent = new GenericRole(self::ROLE_CURRENT_COURSE_STUDENT);
$currentTeacher = new Role(self::ROLE_CURRENT_COURSE_TEACHER); $currentTeacher = new GenericRole(self::ROLE_CURRENT_COURSE_TEACHER);
$currentStudentGroup = new Role(self::ROLE_CURRENT_COURSE_GROUP_STUDENT); $currentStudentGroup = new GenericRole(self::ROLE_CURRENT_COURSE_GROUP_STUDENT);
$currentTeacherGroup = new Role(self::ROLE_CURRENT_COURSE_GROUP_TEACHER); $currentTeacherGroup = new GenericRole(self::ROLE_CURRENT_COURSE_GROUP_TEACHER);
$currentStudentSession = new Role(self::ROLE_CURRENT_COURSE_SESSION_STUDENT); $currentStudentSession = new GenericRole(self::ROLE_CURRENT_COURSE_SESSION_STUDENT);
$currentTeacherSession = new Role(self::ROLE_CURRENT_COURSE_SESSION_TEACHER); $currentTeacherSession = new GenericRole(self::ROLE_CURRENT_COURSE_SESSION_TEACHER);
$superAdmin = new Role('ROLE_SUPER_ADMIN'); $superAdmin = new GenericRole('ROLE_SUPER_ADMIN');
$admin = new Role('ROLE_ADMIN'); $admin = new GenericRole('ROLE_ADMIN');
// Setting Simple ACL. // Setting Simple ACL.
$acl = new Acl(); $acl = new Acl();

@ -45,7 +45,7 @@ class SessionVoter extends Voter
$this->settingsManager = $settingsManager; $this->settingsManager = $settingsManager;
} }
public function supports(string $attribute, $subject): bool protected function supports(string $attribute, $subject): bool
{ {
$options = [ $options = [
self::VIEW, self::VIEW,
@ -194,10 +194,7 @@ class SessionVoter extends Voter
return $totalDuration > $currentTime; return $totalDuration > $currentTime;
} }
/** private function canEditSession(User $user, Session $session, bool $checkSession = true): bool
* @param bool $checkSession
*/
private function canEditSession(User $user, Session $session, $checkSession = true): bool
{ {
if (!$this->allowToManageSessions()) { if (!$this->allowToManageSessions()) {
return false; return false;

@ -15,10 +15,7 @@ abstract class AbstractTool implements ToolInterface
protected string $link; protected string $link;
protected string $image; protected string $image;
protected string $admin; protected string $admin;
/** protected ?SchemaInterface $settings = null;
* @var null|array|SchemaInterface
*/
protected $settings;
protected ?array $resourceTypes; protected ?array $resourceTypes;
/** /**
@ -31,14 +28,7 @@ abstract class AbstractTool implements ToolInterface
*/ */
protected string $scope; protected string $scope;
/** public function __construct(string $name, string $category, string $link, SchemaInterface $settings = null, array $resourceTypes = [])
* @param string $name
* @param string $category
* @param string $link
* @param SchemaInterface $settings
* @param array $resourceTypes
*/
public function __construct($name, $category, $link, $settings = null, $resourceTypes = [])
{ {
$this->name = $name; $this->name = $name;
$this->category = $category; $this->category = $category;

@ -89,15 +89,7 @@ trait ControllerTrait
return $this->container->get('request_stack')->getCurrentRequest(); return $this->container->get('request_stack')->getCurrentRequest();
} }
/*public function getBreadCrumb(): BreadcrumbBlockService public function abort(string $message = ''): void
{
return $this->container->get('breadcrumb');
}*/
/**
* @param string $message
*/
public function abort($message = ''): void
{ {
throw new NotFoundHttpException($message); throw new NotFoundHttpException($message);
} }
@ -105,11 +97,10 @@ trait ControllerTrait
/** /**
* Translator shortcut. * Translator shortcut.
* *
* @param string $variable
* *
* @return string * @return string
*/ */
public function trans($variable) public function trans(string $variable)
{ {
/** @var TranslatorInterface $translator */ /** @var TranslatorInterface $translator */
$translator = $this->container->get('translator'); $translator = $this->container->get('translator');

@ -159,6 +159,6 @@ trait CourseControllerTrait
public function getSessionId(): int public function getSessionId(): int
{ {
return $this->session ? $this->getSession()->getId() : 0; return $this->session !== null ? $this->getSession()->getId() : 0;
} }
} }

@ -50,13 +50,13 @@ trait ResourceControllerTrait
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."));
} }
$resourceNode = $resource->getResourceNode(); $resourceNode = $resource->getResourceNode();
if (null === $resourceNode) { if (null === $resourceNode) {
throw new EntityNotFoundException($this->trans('Resource doesn\'t have a node.')); throw new EntityNotFoundException($this->trans("Resource doesn't have a node."));
} }
} }

@ -10,7 +10,7 @@ use Chamilo\CoreBundle\Entity\Session;
trait SessionTrait trait SessionTrait
{ {
protected ?Session $session; protected ?Session $session = null;
/** /**
* @return Session * @return Session

@ -100,11 +100,9 @@ final class CDocumentRepository extends ResourceRepository implements GridInterf
} }
/** /**
* @param int $userId
*
* @return array * @return array
*/ */
public function getAllDocumentsByAuthor($userId) public function getAllDocumentsByAuthor(int $userId)
{ {
$repo = $this->repository; $repo = $this->repository;

@ -18,11 +18,9 @@ final class CExerciseCategoryRepository extends ResourceRepository
} }
/** /**
* @param int $courseId
*
* @return array * @return array
*/ */
public function getCategories($courseId) public function getCategories(int $courseId)
{ {
$query = $this->createQueryBuilder('e'); $query = $this->createQueryBuilder('e');
$query->where('e.course = :cId'); $query->where('e.course = :cId');

@ -22,19 +22,14 @@ class CForumPostRepository extends ResourceRepository
parent::__construct($registry, CForumPost::class); parent::__construct($registry, CForumPost::class);
} }
/**
* @param bool $onlyVisible
* @param bool $isAllowedToEdit
* @param string $orderDirection
*/
public function findAllInCourseByThread( public function findAllInCourseByThread(
$onlyVisible, bool $onlyVisible,
$isAllowedToEdit, bool $isAllowedToEdit,
CForumThread $thread, CForumThread $thread,
Course $course, Course $course,
User $currentUser = null, User $currentUser = null,
CGroup $group = null, CGroup $group = null,
$orderDirection = 'ASC' string $orderDirection = 'ASC'
): array { ): array {
$conditionVisibility = $onlyVisible ? 'p.visible = 1' : 'p.visible != 2'; $conditionVisibility = $onlyVisible ? 'p.visible = 1' : 'p.visible != 2';
$conditionModerated = ''; $conditionModerated = '';

@ -23,17 +23,14 @@ class CNotebookRepository extends ResourceRepository
/** /**
* Get the user notebooks in a course. * Get the user notebooks in a course.
* *
* @param string $orderField
* @param string $orderDirection
*
* @return array * @return array
*/ */
public function findByUser( public function findByUser(
User $user, User $user,
Course $course, Course $course,
Session $session = null, Session $session = null,
$orderField = 'creation_date', string $orderField = 'creation_date',
$orderDirection = 'DESC' string $orderDirection = 'DESC'
) { ) {
switch ($orderField) { switch ($orderField) {
case 'creation_date': case 'creation_date':

@ -51,7 +51,7 @@ final class CToolRepository extends ResourceRepository
$isAdmin = $checker->isGranted('ROLE_ADMIN') || $checker->isGranted('ROLE_CURRENT_COURSE_TEACHER'); $isAdmin = $checker->isGranted('ROLE_ADMIN') || $checker->isGranted('ROLE_CURRENT_COURSE_TEACHER');
if (false === $isAdmin) { if (!$isAdmin) {
$qb $qb
->andWhere('links.visibility = :visibility') ->andWhere('links.visibility = :visibility')
->setParameter('visibility', ResourceLink::VISIBILITY_PUBLISHED) ->setParameter('visibility', ResourceLink::VISIBILITY_PUBLISHED)

@ -52,7 +52,7 @@ class SettingsCourseManager extends SettingsManager
// Remove unknown settings' parameters (e.g. From a previous version of the settings schema) // Remove unknown settings' parameters (e.g. From a previous version of the settings schema)
if ($ignoreUnknown) { if ($ignoreUnknown) {
foreach ($parameters as $name => $value) { foreach (array_keys($parameters) as $name) {
if (!$settingsBuilder->isDefined($name)) { if (!$settingsBuilder->isDefined($name)) {
unset($parameters[$name]); unset($parameters[$name]);
} }

Loading…
Cancel
Save