[SecurityBundle] added some tests
This commit is contained in:
parent
f787a2a748
commit
c3084050a0
@ -115,11 +115,17 @@ class SecurityExtension extends Extension
|
||||
}
|
||||
$container->getDefinition('security.acl.voter.basic_permissions')->addArgument($config['voter']['allow_if_object_identity_unavailable']);
|
||||
|
||||
// custom ACL provider
|
||||
if (isset($config['provider'])) {
|
||||
$container->setAlias('security.acl.provider', $config['provider']);
|
||||
return;
|
||||
}
|
||||
|
||||
$this->configureDbalAclProvider($config, $container, $loader);
|
||||
}
|
||||
|
||||
private function configureDbalAclProvider(array $config, ContainerBuilder $container, $loader)
|
||||
{
|
||||
$loader->load('security_acl_dbal.xml');
|
||||
|
||||
if (isset($config['connection'])) {
|
||||
@ -132,7 +138,6 @@ class SecurityExtension extends Extension
|
||||
$container->setParameter('security.acl.dbal.oid_table_name', $config['tables']['object_identity']);
|
||||
$container->setParameter('security.acl.dbal.oid_ancestors_table_name', $config['tables']['object_identity_ancestors']);
|
||||
$container->setParameter('security.acl.dbal.sid_table_name', $config['tables']['security_identity']);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
$container->loadFromExtension('security', array(
|
||||
'acl' => array(),
|
||||
'encoders' => array(
|
||||
'JMS\FooBundle\Entity\User1' => 'plaintext',
|
||||
'JMS\FooBundle\Entity\User2' => array(
|
||||
|
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
$this->load('container1.php', $container);
|
||||
|
||||
$container->loadFromExtension('security', array(
|
||||
'acl' => array(
|
||||
'provider' => 'foo',
|
||||
)
|
||||
));
|
@ -6,6 +6,8 @@
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<config>
|
||||
<acl />
|
||||
|
||||
<encoder class="JMS\FooBundle\Entity\User1" algorithm="plaintext" />
|
||||
|
||||
<encoder class="JMS\FooBundle\Entity\User2" algorithm="sha1" encode-as-base64="false" iterations="5" />
|
||||
|
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:sec="http://symfony.com/schema/dic/security"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||
|
||||
<imports>
|
||||
<import resource="container1.xml"/>
|
||||
</imports>
|
||||
|
||||
<sec:config>
|
||||
<sec:acl provider="foo" />
|
||||
</sec:config>
|
||||
|
||||
</container>
|
@ -1,4 +1,5 @@
|
||||
security:
|
||||
acl: ~
|
||||
encoders:
|
||||
JMS\FooBundle\Entity\User1: plaintext
|
||||
JMS\FooBundle\Entity\User2:
|
||||
|
@ -0,0 +1,6 @@
|
||||
imports:
|
||||
- { resource: container1.yml }
|
||||
|
||||
security:
|
||||
acl:
|
||||
provider: foo
|
@ -150,6 +150,22 @@ abstract class SecurityExtensionTest extends \PHPUnit_Framework_TestCase
|
||||
)), $container->getDefinition('security.encoder_factory.generic')->getArguments());
|
||||
}
|
||||
|
||||
public function testAcl()
|
||||
{
|
||||
$container = $this->getContainer('container1');
|
||||
|
||||
$this->assertTrue($container->hasDefinition('security.acl.dbal.provider'));
|
||||
$this->assertEquals('security.acl.dbal.provider', (string) $container->getAlias('security.acl.provider'));
|
||||
}
|
||||
|
||||
public function testCustomAclProvider()
|
||||
{
|
||||
$container = $this->getContainer('custom_acl_provider');
|
||||
|
||||
$this->assertFalse($container->hasDefinition('security.acl.dbal.provider'));
|
||||
$this->assertEquals('foo', (string) $container->getAlias('security.acl.provider'));
|
||||
}
|
||||
|
||||
protected function getContainer($file)
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
|
Reference in New Issue
Block a user