Minor: Fix deprecation warnings

pull/4677/head^2
Angel Fernando Quiroz Campos 2 years ago
parent ab5f8dc01d
commit 65e7d1d14c
  1. 29
      src/CoreBundle/Controller/SecurityController.php
  2. 17
      src/CoreBundle/Entity/AbstractResource.php
  3. 9
      src/CoreBundle/Entity/ResourceLink.php
  4. 2
      src/CoreBundle/EventSubscriber/LocaleSubscriber.php
  5. 2
      src/CoreBundle/EventSubscriber/LoginFailureSubscriber.php
  6. 2
      src/CoreBundle/EventSubscriber/PaginationSubscriber.php
  7. 2
      src/CoreBundle/EventSubscriber/UserLocaleSubscriber.php
  8. 16
      src/CoreBundle/Filter/UserExtraFieldFilter.php
  9. 2
      src/CoreBundle/Form/Type/IllustrationType.php
  10. 2
      src/CoreBundle/Form/Type/YesNoNumericType.php
  11. 2
      src/CoreBundle/Form/Type/YesNoType.php
  12. 5
      src/CoreBundle/Serializer/ResourceNormalizer.php
  13. 2
      src/CoreBundle/Traits/TimestampableTypedEntity.php
  14. 2
      src/CoreBundle/Traits/UserExtraFieldFilterTrait.php
  15. 4
      src/CoreBundle/Transformer/ArrayToIdentifierTransformer.php
  16. 2
      src/CourseBundle/DependencyInjection/Configuration.php
  17. 3
      src/CourseBundle/Settings/SettingsFormFactory.php

@ -8,29 +8,25 @@ namespace Chamilo\CoreBundle\Controller;
use Chamilo\CoreBundle\Entity\TrackELoginRecord; use Chamilo\CoreBundle\Entity\TrackELoginRecord;
use Chamilo\CoreBundle\Entity\User; use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Framework\Container; use Chamilo\CoreBundle\Repository\TrackELoginRecordRepository;
use DateTime; use DateTime;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\SerializerInterface; use Symfony\Component\Serializer\SerializerInterface;
class SecurityController extends AbstractController class SecurityController extends AbstractController
{ {
private SerializerInterface $serializer; public function __construct(
private readonly SerializerInterface $serializer,
public function __construct(SerializerInterface $serializer) private readonly TrackELoginRecordRepository $trackELoginRecordRepository
{ ) {
$this->serializer = $serializer;
} }
/** #[Route('/login_json', name: 'login_json', methods: ['POST'])]
* @Route("/login_json", name="login_json") public function loginJson(): Response
*/
public function loginJson(AuthenticationUtils $authenticationUtils): Response
{ {
if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) { if (!$this->isGranted('IS_AUTHENTICATED_FULLY')) {
return $this->json( return $this->json(
@ -54,14 +50,11 @@ class SecurityController extends AbstractController
->setUsername($user->getUsername()) ->setUsername($user->getUsername())
->setLoginDate(new DateTime()) ->setLoginDate(new DateTime())
->setUserIp(api_get_real_ip()) ->setUserIp(api_get_real_ip())
->setSuccess(true) ->setSuccess(true);
;
$repo = Container::getTrackELoginRecordRepository(); $this->trackELoginRecordRepository->create($trackELoginRecord);
$repo->create($trackELoginRecord);
$userClone = clone $user; $data = $this->serializer->serialize($user, JsonEncoder::FORMAT, ['groups' => ['user:read']]);
$userClone->setPassword('');
$data = $this->serializer->serialize($userClone, JsonEncoder::FORMAT);
} }
return new JsonResponse($data, Response::HTTP_OK, [], true); return new JsonResponse($data, Response::HTTP_OK, [], true);

@ -6,8 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use ApiPlatform\Core\Annotation\ApiProperty; use ApiPlatform\Metadata\ApiProperty;
use ApiPlatform\Core\Annotation\ApiSubresource;
use Chamilo\CoreBundle\Entity\Listener\ResourceListener; use Chamilo\CoreBundle\Entity\Listener\ResourceListener;
use Chamilo\CoreBundle\Security\Authorization\Voter\ResourceNodeVoter; use Chamilo\CoreBundle\Security\Authorization\Voter\ResourceNodeVoter;
use Chamilo\CoreBundle\Traits\UserCreatorTrait; use Chamilo\CoreBundle\Traits\UserCreatorTrait;
@ -25,17 +24,14 @@ abstract class AbstractResource
{ {
use UserCreatorTrait; use UserCreatorTrait;
/** #[ApiProperty(types: ['https://schema.org/contentUrl'])]
* @ApiProperty(iri="https://schema.org/contentUrl")
*/
#[Groups(['resource_file:read', 'resource_node:read', 'document:read', 'media_object_read', 'message:read'])] #[Groups(['resource_file:read', 'resource_node:read', 'document:read', 'media_object_read', 'message:read'])]
public ?string $contentUrl = null; public ?string $contentUrl = null;
/** /**
* Download URL of the Resource File Property set by ResourceNormalizer.php. * Download URL of the Resource File Property set by ResourceNormalizer.php.
*
* @ApiProperty(iri="https://schema.org/contentUrl")
*/ */
#[ApiProperty(types: ['https://schema.org/contentUrl'])]
#[Groups(['resource_file:read', 'resource_node:read', 'document:read', 'media_object_read', 'message:read'])] #[Groups(['resource_file:read', 'resource_node:read', 'document:read', 'media_object_read', 'message:read'])]
public ?string $downloadUrl = null; public ?string $downloadUrl = null;
@ -47,9 +43,8 @@ abstract class AbstractResource
/** /**
* Resource illustration URL - Property set by ResourceNormalizer.php. * Resource illustration URL - Property set by ResourceNormalizer.php.
*
* @ApiProperty(iri="https://schema.org/contentUrl")
*/ */
#[ApiProperty(types: ['https://schema.org/contentUrl'])]
#[Groups([ #[Groups([
'resource_node:read', 'resource_node:read',
'document:read', 'document:read',
@ -86,9 +81,7 @@ abstract class AbstractResource
#[Groups(['resource_node:read', 'resource_node:write', 'document:read', 'document:write'])] #[Groups(['resource_node:read', 'resource_node:write', 'document:read', 'document:write'])]
public ?int $parentResourceNode = 0; public ?int $parentResourceNode = 0;
/** #[ApiProperty(types: ['https://schema.org/image'])]
* @ApiProperty(iri="https://schema.org/image")
*/
public ?UploadedFile $uploadFile = null; public ?UploadedFile $uploadFile = null;
/** /**

@ -24,6 +24,7 @@ use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use LogicException; use LogicException;
use Symfony\Component\Serializer\Annotation\Groups; use Symfony\Component\Serializer\Annotation\Groups;
#[ApiResource] #[ApiResource]
#[ORM\Table(name: 'resource_link')] #[ORM\Table(name: 'resource_link')]
#[ORM\Entity] #[ORM\Entity]
@ -64,19 +65,19 @@ class ResourceLink implements \Stringable
#[ORM\Column(type: 'bigint')] #[ORM\Column(type: 'bigint')]
#[ORM\GeneratedValue] #[ORM\GeneratedValue]
protected ?int $id = null; protected ?int $id = null;
#[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\ResourceNode::class, inversedBy: 'resourceLinks')] #[ORM\ManyToOne(targetEntity: ResourceNode::class, inversedBy: 'resourceLinks')]
#[ORM\JoinColumn(name: 'resource_node_id', referencedColumnName: 'id', onDelete: 'CASCADE')] #[ORM\JoinColumn(name: 'resource_node_id', referencedColumnName: 'id', onDelete: 'CASCADE')]
protected ResourceNode $resourceNode; protected ResourceNode $resourceNode;
#[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\Course::class)] #[ORM\ManyToOne(targetEntity: Course::class)]
#[ORM\JoinColumn(name: 'c_id', referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')] #[ORM\JoinColumn(name: 'c_id', referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')]
protected ?Course $course = null; protected ?Course $course = null;
#[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\Session::class, inversedBy: 'resourceLinks')] #[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\Session::class, inversedBy: 'resourceLinks')]
#[ORM\JoinColumn(name: 'session_id', referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')] #[ORM\JoinColumn(name: 'session_id', referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')]
protected ?Session $session = null; protected ?Session $session = null;
#[ORM\ManyToOne(targetEntity: \Chamilo\CourseBundle\Entity\CGroup::class)] #[ORM\ManyToOne(targetEntity: CGroup::class)]
#[ORM\JoinColumn(name: 'group_id', referencedColumnName: 'iid', nullable: true, onDelete: 'CASCADE')] #[ORM\JoinColumn(name: 'group_id', referencedColumnName: 'iid', nullable: true, onDelete: 'CASCADE')]
protected ?CGroup $group = null; protected ?CGroup $group = null;
#[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\Usergroup::class)] #[ORM\ManyToOne(targetEntity: Usergroup::class)]
#[ORM\JoinColumn(name: 'usergroup_id', referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')] #[ORM\JoinColumn(name: 'usergroup_id', referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')]
protected ?Usergroup $userGroup = null; protected ?Usergroup $userGroup = null;
#[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\User::class)] #[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\User::class)]

@ -151,7 +151,7 @@ class LocaleSubscriber implements EventSubscriberInterface
return $locale; return $locale;
} }
public static function getSubscribedEvents() public static function getSubscribedEvents(): array
{ {
return [ return [
// must be registered before the default Locale listener // must be registered before the default Locale listener

@ -16,7 +16,7 @@ use Symfony\Component\Security\Http\Event\LoginFailureEvent;
class LoginFailureSubscriber implements EventSubscriberInterface class LoginFailureSubscriber implements EventSubscriberInterface
{ {
public function __construct( public function __construct(
private TrackELoginRecordRepository $trackELoginRecordingRepository private readonly TrackELoginRecordRepository $trackELoginRecordingRepository
) { ) {
} }

@ -31,7 +31,7 @@ class PaginationSubscriber implements EventSubscriberInterface
$event->stopPropagation(); $event->stopPropagation();
} }
public static function getSubscribedEvents() public static function getSubscribedEvents(): array
{ {
return [ return [
'knp_pager.items' => ['items', 1/*increased priority to override any internal*/], 'knp_pager.items' => ['items', 1/*increased priority to override any internal*/],

@ -44,7 +44,7 @@ class UserLocaleSubscriber implements EventSubscriberInterface
} }
} }
public static function getSubscribedEvents() public static function getSubscribedEvents(): array
{ {
return [ return [
SecurityEvents::INTERACTIVE_LOGIN => 'onInteractiveLogin', SecurityEvents::INTERACTIVE_LOGIN => 'onInteractiveLogin',

@ -6,15 +6,16 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Filter; namespace Chamilo\CoreBundle\Filter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\AbstractContextAwareFilter; use ApiPlatform\Doctrine\Orm\Filter\AbstractFilter;
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface; use ApiPlatform\Doctrine\Orm\Util\QueryNameGeneratorInterface;
use ApiPlatform\Metadata\Operation;
use Chamilo\CoreBundle\Entity\ExtraField; use Chamilo\CoreBundle\Entity\ExtraField;
use Chamilo\CoreBundle\Entity\ExtraFieldValues; use Chamilo\CoreBundle\Entity\ExtraFieldValues;
use Doctrine\ORM\Query\Expr\Join; use Doctrine\ORM\Query\Expr\Join;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Symfony\Component\PropertyInfo\Type; use Symfony\Component\PropertyInfo\Type;
class UserExtraFieldFilter extends AbstractContextAwareFilter class UserExtraFieldFilter extends AbstractFilter
{ {
public function getDescription(string $resourceClass): array public function getDescription(string $resourceClass): array
{ {
@ -46,7 +47,8 @@ class UserExtraFieldFilter extends AbstractContextAwareFilter
QueryBuilder $queryBuilder, QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator, QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass, string $resourceClass,
string $operationName = null Operation $operation = null,
array $context = []
): void { ): void {
if (!$this->isPropertyEnabled($property, $resourceClass)) { if (!$this->isPropertyEnabled($property, $resourceClass)) {
return; return;
@ -65,13 +67,11 @@ class UserExtraFieldFilter extends AbstractContextAwareFilter
) )
->innerJoin(ExtraField::class, 'ef', Join::WITH, 'efv.field = ef.id') ->innerJoin(ExtraField::class, 'ef', Join::WITH, 'efv.field = ef.id')
->andWhere('ef.itemType = :itemType') ->andWhere('ef.itemType = :itemType')
->andWhere('ef.variable = :variable') ->andWhere('ef.variable = :variable');
;
$queryBuilder $queryBuilder
->setParameter('itemType', ExtraField::USER_FIELD_TYPE) ->setParameter('itemType', ExtraField::USER_FIELD_TYPE)
->setParameter('variable', $value) ->setParameter('variable', $value);
;
break; break;
case 'userExtraFieldValue': case 'userExtraFieldValue':

@ -16,7 +16,7 @@ class IllustrationType extends AbstractType
{ {
} }
public function getParent() public function getParent(): string
{ {
return FileType::class; return FileType::class;
} }

@ -40,7 +40,7 @@ class YesNoNumericType extends AbstractType
); );
} }
public function getParent() public function getParent(): string
{ {
return ChoiceType::class; return ChoiceType::class;
} }

@ -24,7 +24,7 @@ class YesNoType extends AbstractType
); );
} }
public function getParent() public function getParent(): string
{ {
return ChoiceType::class; return ChoiceType::class;
} }

@ -34,10 +34,7 @@ final class ResourceNormalizer implements ContextAwareNormalizerInterface, Norma
$this->illustrationRepository = $illustrationRepository; $this->illustrationRepository = $illustrationRepository;
} }
/** public function normalize($object, ?string $format = null, array $context = []): float|int|bool|\ArrayObject|array|string|null
* @param AbstractResource|User $object
*/
public function normalize($object, ?string $format = null, array $context = [])
{ {
$context[self::ALREADY_CALLED] = true; $context[self::ALREADY_CALLED] = true;

@ -4,7 +4,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Traits; namespace Chamilo\CoreBundle\Traits;
use ApiPlatform\Core\Annotation\ApiProperty; use ApiPlatform\Metadata\ApiProperty;
use DateTime; use DateTime;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo; use Gedmo\Mapping\Annotation as Gedmo;

@ -6,7 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Traits; namespace Chamilo\CoreBundle\Traits;
use ApiPlatform\Core\Annotation\ApiFilter; use ApiPlatform\Metadata\ApiFilter;
use Chamilo\CoreBundle\Filter\UserExtraFieldFilter; use Chamilo\CoreBundle\Filter\UserExtraFieldFilter;
trait UserExtraFieldFilterTrait trait UserExtraFieldFilterTrait

@ -15,7 +15,7 @@ use Symfony\Component\Form\DataTransformerInterface;
*/ */
class ArrayToIdentifierTransformer implements DataTransformerInterface class ArrayToIdentifierTransformer implements DataTransformerInterface
{ {
public function transform($value) public function transform($value): string
{ {
if (!\is_array($value)) { if (!\is_array($value)) {
return ''; return '';
@ -24,7 +24,7 @@ class ArrayToIdentifierTransformer implements DataTransformerInterface
return implode(',', $value); return implode(',', $value);
} }
public function reverseTransform($value) public function reverseTransform($value): array
{ {
if (empty($value)) { if (empty($value)) {
return []; return [];

@ -18,7 +18,7 @@ use Symfony\Component\Config\Definition\ConfigurationInterface;
*/ */
class Configuration implements ConfigurationInterface class Configuration implements ConfigurationInterface
{ {
public function getConfigTreeBuilder() public function getConfigTreeBuilder(): TreeBuilder
{ {
$treeBuilder = new TreeBuilder('chamilo_course'); $treeBuilder = new TreeBuilder('chamilo_course');
$rootNode = $treeBuilder->getRootNode(); $rootNode = $treeBuilder->getRootNode();

@ -10,6 +10,7 @@ use Sylius\Bundle\SettingsBundle\Schema\SchemaFormOptionsInterface;
use Sylius\Bundle\SettingsBundle\Schema\SchemaInterface; use Sylius\Bundle\SettingsBundle\Schema\SchemaInterface;
use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\Form\FormInterface;
final class SettingsFormFactory implements SettingsFormFactoryInterface final class SettingsFormFactory implements SettingsFormFactoryInterface
{ {
@ -23,7 +24,7 @@ final class SettingsFormFactory implements SettingsFormFactoryInterface
$this->formFactory = $formFactory; $this->formFactory = $formFactory;
} }
public function create($schemaAlias, $data = null, array $options = []) public function create($schemaAlias, $data = null, array $options = []): FormInterface
{ {
/** @var SchemaInterface $schema */ /** @var SchemaInterface $schema */
$schema = $this->schemaRegistry->get($schemaAlias); $schema = $this->schemaRegistry->get($schemaAlias);

Loading…
Cancel
Save