diff -r 806e57d67020 -r e54dfe4d0b2b vendor/bundles/FOS/UserBundle/DependencyInjection/Configuration.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/FOS/UserBundle/DependencyInjection/Configuration.php Fri Sep 30 11:24:53 2011 +0200 @@ -0,0 +1,267 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\UserBundle\DependencyInjection; + +use Symfony\Component\Config\Definition\Builder\TreeBuilder; +use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; +use Symfony\Component\Config\Definition\ConfigurationInterface; + +/** + * This class contains the configuration information for the bundle + * + * This information is solely responsible for how the different configuration + * sections are normalized, and merged. + * + * @author Christophe Coevoet + */ +class Configuration implements ConfigurationInterface +{ + /** + * Generates the configuration tree. + * + * @return TreeBuilder + */ + public function getConfigTreeBuilder() + { + $treeBuilder = new TreeBuilder(); + $rootNode = $treeBuilder->root('fos_user'); + + $rootNode + ->children() + ->scalarNode('db_driver')->cannotBeOverwritten()->isRequired()->cannotBeEmpty()->end() + ->scalarNode('user_class')->isRequired()->cannotBeEmpty()->end() + ->scalarNode('firewall_name')->isRequired()->cannotBeEmpty()->end() + ->scalarNode('model_manager_name')->defaultNull()->end() + ->booleanNode('use_listener')->defaultTrue()->end() + ->booleanNode('use_username_form_type')->defaultTrue()->end() + ->arrayNode('from_email') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('address')->defaultValue('webmaster@example.com')->cannotBeEmpty()->end() + ->scalarNode('sender_name')->defaultValue('webmaster')->cannotBeEmpty()->end() + ->end() + ->end() + ->end(); + + $this->addProfileSection($rootNode); + $this->addChangePasswordSection($rootNode); + $this->addRegistrationSection($rootNode); + $this->addResettingSection($rootNode); + $this->addServiceSection($rootNode); + $this->addEncoderSection($rootNode); + $this->addTemplateSection($rootNode); + $this->addGroupSection($rootNode); + + return $treeBuilder; + } + + private function addProfileSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('profile') + ->addDefaultsIfNotSet() + ->canBeUnset() + ->children() + ->arrayNode('form') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('type')->defaultValue('fos_user_profile')->end() + ->scalarNode('handler')->defaultValue('fos_user.profile.form.handler.default')->end() + ->scalarNode('name')->defaultValue('fos_user_profile_form')->cannotBeEmpty()->end() + ->arrayNode('validation_groups') + ->prototype('scalar')->end() + ->defaultValue(array('Profile')) + ->end() + ->end() + ->end() + ->end() + ->end() + ->end(); + } + + private function addRegistrationSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('registration') + ->addDefaultsIfNotSet() + ->canBeUnset() + ->children() + ->arrayNode('confirmation') + ->addDefaultsIfNotSet() + ->children() + ->booleanNode('enabled')->defaultFalse()->end() + ->scalarNode('template')->defaultValue('FOSUserBundle:Registration:email.txt.twig')->end() + ->arrayNode('from_email') + ->canBeUnset() + ->children() + ->scalarNode('address')->isRequired()->cannotBeEmpty()->end() + ->scalarNode('sender_name')->isRequired()->cannotBeEmpty()->end() + ->end() + ->end() + ->end() + ->end() + ->arrayNode('form') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('type')->defaultValue('fos_user_registration')->end() + ->scalarNode('handler')->defaultValue('fos_user.registration.form.handler.default')->end() + ->scalarNode('name')->defaultValue('fos_user_registration_form')->cannotBeEmpty()->end() + ->arrayNode('validation_groups') + ->prototype('scalar')->end() + ->defaultValue(array('Registration')) + ->end() + ->end() + ->end() + ->end() + ->end() + ->end(); + } + + private function addResettingSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('resetting') + ->addDefaultsIfNotSet() + ->canBeUnset() + ->children() + ->scalarNode('token_ttl')->defaultValue(86400)->end() + ->arrayNode('email') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('template')->defaultValue('FOSUserBundle:Resetting:email.txt.twig')->end() + ->arrayNode('from_email') + ->canBeUnset() + ->children() + ->scalarNode('address')->isRequired()->cannotBeEmpty()->end() + ->scalarNode('sender_name')->isRequired()->cannotBeEmpty()->end() + ->end() + ->end() + ->end() + ->end() + ->arrayNode('form') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('type')->defaultValue('fos_user_resetting')->end() + ->scalarNode('handler')->defaultValue('fos_user.resetting.form.handler.default')->end() + ->scalarNode('name')->defaultValue('fos_user_resetting_form')->cannotBeEmpty()->end() + ->arrayNode('validation_groups') + ->prototype('scalar')->end() + ->defaultValue(array('ResetPassword')) + ->end() + ->end() + ->end() + ->end() + ->end() + ->end(); + } + + private function addChangePasswordSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('change_password') + ->addDefaultsIfNotSet() + ->canBeUnset() + ->children() + ->arrayNode('form') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('type')->defaultValue('fos_user_change_password')->end() + ->scalarNode('handler')->defaultValue('fos_user.change_password.form.handler.default')->end() + ->scalarNode('name')->defaultValue('fos_user_change_password_form')->cannotBeEmpty()->end() + ->arrayNode('validation_groups') + ->prototype('scalar')->end() + ->defaultValue(array('ChangePassword')) + ->end() + ->end() + ->end() + ->end() + ->end() + ->end(); + } + + private function addServiceSection(ArrayNodeDefinition $node) + { + $node + ->addDefaultsIfNotSet() + ->children() + ->arrayNode('service') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('mailer')->defaultValue('fos_user.mailer.default')->end() + ->scalarNode('email_canonicalizer')->defaultValue('fos_user.util.email_canonicalizer.default')->end() + ->scalarNode('username_canonicalizer')->defaultValue('fos_user.util.username_canonicalizer.default')->end() + ->scalarNode('user_manager')->defaultValue('fos_user.user_manager.default')->end() + ->end() + ->end() + ->end() + ->end(); + } + + private function addEncoderSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('encoder') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('algorithm')->defaultValue('sha512')->end() + ->booleanNode('encode_as_base64')->defaultFalse()->end() + ->scalarNode('iterations')->defaultValue(1)->end() + ->end() + ->end() + ->end(); + } + + private function addTemplateSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('template') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('engine')->defaultValue('twig')->end() + ->scalarNode('theme')->defaultValue('FOSUserBundle::form.html.twig')->end() + ->end() + ->end() + ->end(); + } + + private function addGroupSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('group') + ->canBeUnset() + ->children() + ->scalarNode('group_class')->isRequired()->cannotBeEmpty()->end() + ->scalarNode('group_manager')->defaultValue('fos_user.group_manager.default')->end() + ->arrayNode('form') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('type')->defaultValue('fos_user_group')->end() + ->scalarNode('handler')->defaultValue('fos_user.group.form.handler.default')->end() + ->scalarNode('name')->defaultValue('fos_user_group_form')->cannotBeEmpty()->end() + ->arrayNode('validation_groups') + ->prototype('scalar')->end() + ->defaultValue(array('Registration')) + ->end() + ->end() + ->end() + ->end() + ->end() + ->end(); + } +}