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. 20
      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;
}
public function setParentResourceNode($resourceNode): self
public function setParentResourceNode(?int $resourceNode): self
{
$this->parentResourceNode = $resourceNode;
@ -328,7 +328,7 @@ abstract class AbstractResource
return $this->uploadFile;
}
public function setUploadFile($file): self
public function setUploadFile(?UploadedFile $file): self
{
$this->uploadFile = $file;

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

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

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

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

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

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

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

@ -83,7 +83,7 @@ class LogoutListener
}
$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);
}

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

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

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

@ -29,7 +29,7 @@ class JuryMembersType extends AbstractType
return $er->createQueryBuilder('u')
->where('u.role LIKE :role')
->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')
//->where('u.role LIKE :role')
//->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;
use Chamilo\CoreBundle\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -29,7 +30,7 @@ class ProfileFosUserType extends AbstractType
{
$resolver->setDefaults(
[
'data_class' => 'Chamilo\CoreBundle\Entity\User',
'data_class' => User::class,
]
);
}

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

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

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

@ -84,7 +84,7 @@ class CourseType extends AbstractType
{
$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;
use Chamilo\CoreBundle\Entity\ResourceLink;
use Chamilo\CoreBundle\Entity\ToolResourceRight;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
@ -73,7 +74,7 @@ class ResourceLinkType extends AbstractType
{
$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;
use Chamilo\CoreBundle\Entity\ResourceNode;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
@ -30,7 +31,7 @@ class ResourceNodeType extends AbstractType
{
$resolver->setDefaults(
[
'data_class' => 'Chamilo\CoreBundle\Entity\ResourceNode',
'data_class' => ResourceNode::class,
]
);
}

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

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

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

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

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

@ -48,7 +48,7 @@ class LegalRepository extends ServiceEntityRepository
*
* @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->select('l.content')

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

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

@ -68,10 +68,8 @@ final class IllustrationRepository extends ResourceRepository implements GridInt
/**
* @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) {
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();
@ -660,6 +660,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
$user->setPassword($substitutionTerms['password']);
$user->setSalt($substitutionTerms['salt']);
$noDataLabel = $substitutionTerms['empty'];
// Dummy content
@ -1444,7 +1445,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
$qb->expr()->eq('l.loginUserId', $user->getId())
)
->setMaxResults(1)
->orderBy('l.loginDate', 'DESC')
->orderBy('l.loginDate', \Doctrine\Common\Collections\Criteria::DESC)
->getQuery()
->getOneOrNullResult()
;
@ -1454,7 +1455,7 @@ class UserRepository extends ResourceRepository implements UserLoaderInterface,
{
$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->setParameter('keyword', "%{$keyword}%", Types::STRING);

@ -24,14 +24,14 @@ class ResourceFactory
$resourceTypeList = $tool->getResourceTypes();
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];
$repo = $typeConfig['repository'];
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;

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

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

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

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

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

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

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

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

@ -159,6 +159,6 @@ trait CourseControllerTrait
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
{
if (null === $resource) {
throw new EntityNotFoundException($this->trans('Resource doesn\'t exists.'));
throw new EntityNotFoundException($this->trans("Resource doesn't exists."));
}
$resourceNode = $resource->getResourceNode();
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
{
protected ?Session $session;
protected ?Session $session = null;
/**
* @return Session

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

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

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

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

@ -51,7 +51,7 @@ final class CToolRepository extends ResourceRepository
$isAdmin = $checker->isGranted('ROLE_ADMIN') || $checker->isGranted('ROLE_CURRENT_COURSE_TEACHER');
if (false === $isAdmin) {
if (!$isAdmin) {
$qb
->andWhere('links.visibility = :visibility')
->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)
if ($ignoreUnknown) {
foreach ($parameters as $name => $value) {
foreach (array_keys($parameters) as $name) {
if (!$settingsBuilder->isDefined($name)) {
unset($parameters[$name]);
}

Loading…
Cancel
Save