use Doctrine\ORM\EntityRepository;
+use Epnadmin\CoreBundle\Entity\Resource;
+
class ResourceRepository extends EntityRepository
{
public function createQueryForParent(Resource $resource)
+ {
+ $qb = $this->createQueryForTypes($resource->getAllowedParentTypes());
+
+ $this->qbOnlyVisible($qb);
+
+ return $qb;
+ }
+
+ protected function createQueryForTypes(array $types)
{
$types = array_map(function ($type) {
return 'Epnadmin\CoreBundle\Entity\Resource'.ucfirst($type);
- }, $resource->getAllowedParentTypes());
+ }, $types);
- return $this
+ $qb = $this
->createQueryBuilder('r')
->where('r INSTANCE OF ('.implode(', ', $types).')')
;
+
+ return $qb;
+ }
+
+ protected function qbOnlyVisible($qb)
+ {
+ $qb
+ ->andWhere('r.status = :status')
+ ->setParameter('status', Resource::STATUS_ACTIVE)
+ ;
}
}