Skip to content

Commit 4672a2e

Browse files
authored
Merge pull request #2 from curiosity26/develop
A better solution to preventing unwanted comparisons
2 parents d7f8838 + 5e97fc9 commit 4672a2e

File tree

4 files changed

+5
-84
lines changed

4 files changed

+5
-84
lines changed

DependencyInjection/Curiosity26AclHelperExtension.php

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@
88

99
namespace Curiosity26\AclHelperBundle\DependencyInjection;
1010

11-
use Oro\ORM\Query\AST\Functions\Cast;
1211
use Symfony\Component\Config\FileLocator;
1312
use Symfony\Component\DependencyInjection\ContainerBuilder;
1413
use Symfony\Component\DependencyInjection\Extension\Extension;
15-
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
1614
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
1715

18-
class Curiosity26AclHelperExtension extends Extension implements PrependExtensionInterface
16+
class Curiosity26AclHelperExtension extends Extension
1917
{
2018
/**
2119
* @param array $configs
@@ -28,19 +26,4 @@ public function load(array $configs, ContainerBuilder $container)
2826
$loader = new YamlFileLoader($container, new FileLocator([__DIR__.'/../Resources/config/']));
2927
$loader->load('services.yaml');
3028
}
31-
32-
public function prepend(ContainerBuilder $container)
33-
{
34-
$configs = $container->getExtensionConfig('doctrine');
35-
36-
if (!empty($configs) && array_key_exists('orm', $configs[0])) {
37-
$config = $configs[0];
38-
$default = array_key_exists(
39-
'default_entity_manager',
40-
$config['orm']
41-
) ? $config['orm']['default_entity_manager'] : 'default';
42-
$config['orm']['entity_managers'][$default]['dql']['string_functions']['cast'] = Cast::class;
43-
$container->prependExtensionConfig('doctrine', $config);
44-
}
45-
}
4629
}

QueryBuilder/AclHelperQueryBuilder.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ public function buildAclQuery($strategy = PermissionGrantingStrategy::ANY)
8989
$expr = $q->expr()
9090
->andX($q->expr()->eq('acl_c.classType', ':class_type'))
9191
->add($q->expr()->in('acl_s.identifier', ':identities'))
92+
->add($q->expr()->neq('acl_o.objectIdentifier', "'class'"))
9293
;
9394

9495
switch ($strategy) {
@@ -102,15 +103,8 @@ public function buildAclQuery($strategy = PermissionGrantingStrategy::ANY)
102103
$expr->add($q->expr()->neq('BIT_AND(acl_e.mask, :mask)', 0));
103104
}
104105

105-
$platform = $manager->getConnection()->getDatabasePlatform();
106-
107-
if ($platform instanceof PostgreSqlPlatform) {
108-
$q->select('CAST(acl_o.objectIdentifier as int)');
109-
} else {
110-
$q->select('acl_o.objectIdentifier');
111-
}
112-
113106
$q
107+
->select('acl_o.objectIdentifier')
114108
->distinct()
115109
->from(ObjectIdentity::class, 'acl_o')
116110
->innerJoin(AclClass::class, 'acl_c', Join::WITH, 'acl_c.id = acl_o.classId')

composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
"symfony/acl-bundle": "^1.0",
99
"doctrine/doctrine-bundle": "^1.9",
1010
"doctrine/orm": "^2.6",
11-
"symfony/class-loader": "^3.4",
12-
"oro/doctrine-extensions": "^1.2"
11+
"symfony/class-loader": "^3.4"
1312
},
1413
"require-dev": {
1514
"phpunit/phpunit": "^7.4",

composer.lock

Lines changed: 1 addition & 56 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)