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

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

@ -24,6 +24,7 @@ use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use LogicException;
use Symfony\Component\Serializer\Annotation\Groups;
#[ApiResource]
#[ORM\Table(name: 'resource_link')]
#[ORM\Entity]
@ -64,19 +65,19 @@ class ResourceLink implements \Stringable
#[ORM\Column(type: 'bigint')]
#[ORM\GeneratedValue]
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')]
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')]
protected ?Course $course = null;
#[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\Session::class, inversedBy: 'resourceLinks')]
#[ORM\JoinColumn(name: 'session_id', referencedColumnName: 'id', nullable: true, onDelete: 'CASCADE')]
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')]
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')]
protected ?Usergroup $userGroup = null;
#[ORM\ManyToOne(targetEntity: \Chamilo\CoreBundle\Entity\User::class)]

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

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

@ -31,7 +31,7 @@ class PaginationSubscriber implements EventSubscriberInterface
$event->stopPropagation();
}
public static function getSubscribedEvents()
public static function getSubscribedEvents(): array
{
return [
'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 [
SecurityEvents::INTERACTIVE_LOGIN => 'onInteractiveLogin',

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

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

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

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

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

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

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

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

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

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

Loading…
Cancel
Save