. */ namespace vierbergenlars\AuthserverOAuthAccountBundle\DependencyInjection; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; /** * This is the class that validates and merges configuration from your app/config files * * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class} */ class Configuration implements ConfigurationInterface { /** * * {@inheritdoc} */ public function getConfigTreeBuilder() { $treeBuilder = new TreeBuilder(); $rootNode = $treeBuilder->root('oauth'); // @formatter:off $rootNode->children() ->arrayNode('resource_owners') ->useAttributeAsKey('name') ->prototype('array') ->children() ->arrayNode('config') ->ignoreExtraKeys(false) ->end() ->scalarNode('service_name')->isRequired()->end() ->scalarNode('icon')->defaultNull()->end() ->booleanNode('trust_email_verification')->defaultFalse()->end() ->arrayNode('login_button') ->addDefaultsIfNotSet() ->children() ->scalarNode('label')->defaultNull()->end() ->scalarNode('style')->defaultValue('default')->end() ->scalarNode('icon')->defaultNull()->end() ->end() ->end() ->arrayNode('connect_button') ->addDefaultsIfNotSet() ->children() ->scalarNode('label')->defaultNull()->end() ->scalarNode('style')->defaultValue('default')->end() ->scalarNode('icon')->defaultNull()->end() ->end() ->end() ->end() ->end() ->end() ->arrayNode('registration') ->canBeEnabled() ->addDefaultsIfNotSet() ->children() ->enumNode('display_name')->values(['prefill', 'blank', 'force'])->defaultValue('prefill')->end() ->enumNode('email')->values(['prefill', 'blank', 'force'])->defaultValue('prefill')->end() ->enumNode('password')->values(['blank', 'hidden', 'force-disable'])->defaultValue('hidden')->end() ->end() ->end() ; // @formatter:on // Here you should define the parameters that are allowed to // configure your bundle. See the documentation linked above for // more information on that topic. return $treeBuilder; } }