aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/UserBundle/DependencyInjection/WallabagUserExtension.php
blob: 904a6af191a7a9f1f77ea0fc5155c0a0a9a892c6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php

namespace Wallabag\UserBundle\DependencyInjection;

use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;

class WallabagUserExtension extends Extension implements PrependExtensionInterface
{
    public function prepend(ContainerBuilder $container)
    {
        $ldap = $container->getParameter('ldap_enabled');

        if ($ldap) {
            $container->prependExtensionConfig('security', array(
              'providers' => array(
                'chain_provider' => array(),
              ),
            ));
            $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
            $loader->load('ldap.yml');
        } elseif ($container->hasExtension('fr3d_ldap')) {
            $container->prependExtensionConfig('fr3_d_ldap', array(
            'driver' => array(
              'host' => 'localhost',
            ),
            'user' => array(
              'baseDn' => 'dc=example,dc=com',
            ),
          ));
        }
    }

    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
        $loader->load('services.yml');
        if ($container->getParameter('ldap_enabled')) {
            $loader->load('ldap_services.yml');
        }
        $container->setParameter('wallabag_user.registration_enabled', $config['registration_enabled']);
    }

    public function getAlias()
    {
        return 'wallabag_user';
    }
}