|
@@ -6,6 +6,9 @@ namespace App\Doctrine\Organization;
|
|
|
use App\Doctrine\AbstractExtension;
|
|
use App\Doctrine\AbstractExtension;
|
|
|
use App\Entity\Access\Access;
|
|
use App\Entity\Access\Access;
|
|
|
use App\Entity\Organization\Organization;
|
|
use App\Entity\Organization\Organization;
|
|
|
|
|
+use App\Entity\Organization\OrganizationAddressPostal;
|
|
|
|
|
+use App\Entity\Organization\OrganizationArticle;
|
|
|
|
|
+use App\Entity\Organization\Subdomain;
|
|
|
use Doctrine\ORM\QueryBuilder;
|
|
use Doctrine\ORM\QueryBuilder;
|
|
|
use Symfony\Bundle\SecurityBundle\Security;
|
|
use Symfony\Bundle\SecurityBundle\Security;
|
|
|
|
|
|
|
@@ -20,16 +23,26 @@ final class CurrentOrganizationExtension extends AbstractExtension
|
|
|
|
|
|
|
|
protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
|
|
protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
|
|
|
{
|
|
{
|
|
|
- if (Organization::class !== $resourceClass) {
|
|
|
|
|
|
|
+ if (Organization::class === $resourceClass) {
|
|
|
|
|
+ /** @var Access $currentUser */
|
|
|
|
|
+ $currentUser = $this->security->getUser();
|
|
|
|
|
+ $rootAlias = $queryBuilder->getRootAliases()[0];
|
|
|
|
|
+ $queryBuilder
|
|
|
|
|
+ ->andWhere(sprintf('%s.id = :organization', $rootAlias))
|
|
|
|
|
+ ->setParameter('organization', $currentUser->getOrganization()->getId())
|
|
|
|
|
+ ;
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /** @var Access $currentUser */
|
|
|
|
|
- $currentUser = $this->security->getUser();
|
|
|
|
|
- $rootAlias = $queryBuilder->getRootAliases()[0];
|
|
|
|
|
- $queryBuilder
|
|
|
|
|
- ->andWhere(sprintf('%s.id = :organization', $rootAlias))
|
|
|
|
|
- ->setParameter('organization', $currentUser->getOrganization()->getId())
|
|
|
|
|
- ;
|
|
|
|
|
|
|
+ if (in_array($resourceClass, [OrganizationAddressPostal::class, OrganizationArticle::class, Subdomain::class])) {
|
|
|
|
|
+ /** @var Access $currentUser */
|
|
|
|
|
+ $currentUser = $this->security->getUser();
|
|
|
|
|
+ $rootAlias = $queryBuilder->getRootAliases()[0];
|
|
|
|
|
+ $queryBuilder
|
|
|
|
|
+ ->andWhere(sprintf('%s.organization = :organization', $rootAlias))
|
|
|
|
|
+ ->setParameter('organization', $currentUser->getOrganization()->getId())
|
|
|
|
|
+ ;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|