EnabledFilter.php 799 Bytes
Newer Older
Julien Jorry committed
1
<?php
2

Julien Jorry committed
3 4 5 6 7
namespace App\Filter;

use App\Entity\EntityTrait\EnablableEntityTrait;
use Doctrine\ORM\Mapping\ClassMetaData;
use Doctrine\ORM\Query\Filter\SQLFilter;
8

Julien Jorry committed
9 10 11 12 13 14 15 16
class EnabledFilter extends SQLFilter
{
    public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
    {
        $usingTrait = in_array(
            EnablableEntityTrait::class,
            array_keys($targetEntity->reflClass->getTraits())
        );
17 18

        if (!$usingTrait || 'Flux' == $targetEntity->reflClass->getShortName()) {
Julien Jorry committed
19 20
            return '';
        }
21

Julien Jorry committed
22
        $fieldName = 'enabled';
23

Julien Jorry committed
24 25
        // Add the Where clause in the request
        $query = sprintf('(%s.%s = %s OR %s.%s IS NULL)', $targetTableAlias, $fieldName, 'true', $targetTableAlias, $fieldName);
26

Julien Jorry committed
27 28 29
        return $query;
    }
}