diff --git a/src/Bundle/ChillMainBundle/Entity/Scope.php b/src/Bundle/ChillMainBundle/Entity/Scope.php index b0cb9046b..df4f75e4c 100644 --- a/src/Bundle/ChillMainBundle/Entity/Scope.php +++ b/src/Bundle/ChillMainBundle/Entity/Scope.php @@ -28,6 +28,11 @@ use Symfony\Component\Serializer\Annotation\Groups; */ class Scope { + /** + * @ORM\Column(type="boolean", nullable=false, options={"default": true}) + */ + private bool $active = true; + /** * @ORM\Id * @ORM\Column(name="id", type="integer") @@ -88,6 +93,18 @@ class Scope return $this->roleScopes; } + public function isActive(): bool + { + return $this->active; + } + + public function setActive(bool $active): Scope + { + $this->active = $active; + + return $this; + } + /** * @param $name * diff --git a/src/Bundle/ChillMainBundle/Repository/ScopeRepository.php b/src/Bundle/ChillMainBundle/Repository/ScopeRepository.php index 21d05e538..158678fb6 100644 --- a/src/Bundle/ChillMainBundle/Repository/ScopeRepository.php +++ b/src/Bundle/ChillMainBundle/Repository/ScopeRepository.php @@ -43,6 +43,15 @@ final class ScopeRepository implements ScopeRepositoryInterface return $this->repository->findAll(); } + public function findAllActive(): array + { + $qb = $this->repository->createQueryBuilder('s'); + + $qb->where('s.active = \'TRUE\''); + + return $qb->getQuery()->getResult(); + } + /** * @param mixed|null $limit * @param mixed|null $offset diff --git a/src/Bundle/ChillMainBundle/Repository/ScopeRepositoryInterface.php b/src/Bundle/ChillMainBundle/Repository/ScopeRepositoryInterface.php index 1093513f1..3cfb6042d 100644 --- a/src/Bundle/ChillMainBundle/Repository/ScopeRepositoryInterface.php +++ b/src/Bundle/ChillMainBundle/Repository/ScopeRepositoryInterface.php @@ -22,10 +22,15 @@ interface ScopeRepositoryInterface extends ObjectRepository public function find($id, $lockMode = null, $lockVersion = null): ?Scope; /** - * @return Scope[] + * @return array|Scope[] */ public function findAll(): array; + /** + * @return array|Scope[] + */ + public function findAllActive(): array; + /** * @param null|mixed $limit * @param null|mixed $offset diff --git a/src/Bundle/ChillMainBundle/migrations/Version20221010142417.php b/src/Bundle/ChillMainBundle/migrations/Version20221010142417.php new file mode 100644 index 000000000..117dd4d22 --- /dev/null +++ b/src/Bundle/ChillMainBundle/migrations/Version20221010142417.php @@ -0,0 +1,33 @@ +addSql('ALTER TABLE scopes DROP active'); + } + + public function getDescription(): string + { + return 'Allow a scope to be desactivated'; + } + + public function up(Schema $schema): void + { + $this->addSql('ALTER TABLE scopes ADD active BOOLEAN DEFAULT true NOT NULL'); + } +}