From c7a25923c8639376671551c81484d8c90657e5f4 Mon Sep 17 00:00:00 2001 From: BartoszSiejka Date: Thu, 29 Jan 2015 16:22:21 +0100 Subject: [PATCH] Create user bundle Cs fixer Add corrections - first review Add some user specs Fixed specs --- behat.yml.dist | 2 +- .../CoreBundle/Checkout/Step/FinalizeStep.php | 6 +- .../DependencyInjection/Configuration.php | 23 ---- .../SyliusCoreExtension.php | 1 + .../Form/Type/Rule/UserGroupType.php | 2 +- .../Bundle/CoreBundle/Kernel/Kernel.php | 1 + .../CoreBundle/Resources/config/app/main.yml | 2 +- .../Resources/config/app/sylius.yml | 7 +- .../config/doctrine/model/Address.orm.xml | 2 +- .../config/doctrine/model/Order.orm.xml | 2 +- .../config/doctrine/model/User.orm.xml | 13 -- .../Resources/config/driver/doctrine/orm.xml | 15 --- .../CoreBundle/Resources/config/form.xml | 11 -- .../CoreBundle/Resources/config/services.xml | 27 +---- .../Resources/config/validation.xml | 72 +---------- .../Resources/translations/validators.en.yml | 24 +--- .../Bundle/CoreBundle/SyliusCoreBundle.php | 3 - .../DataFixtures/ORM/LoadGroupsData.php | 2 +- src/Sylius/Bundle/UserBundle/.gitignore | 5 + src/Sylius/Bundle/UserBundle/.travis.yml | 13 ++ .../Behat/OAuthContext.php | 2 +- src/Sylius/Bundle/UserBundle/CHANGELOG.md | 6 + .../DependencyInjection/Configuration.php | 112 ++++++++++++++++++ .../SyliusUserExtension.php | 44 +++++++ .../Doctrine/ORM/GroupRepository.php | 2 +- .../Doctrine/ORM/UserRepository.php | 2 +- .../EventListener/UserAwareListener.php | 6 +- .../EventListener/UserDeleteListener.php | 2 +- .../EventListener/UserUpdateListener.php | 2 +- .../Form/Type/GroupChoiceType.php | 4 +- .../Form/Type/GroupEntityType.php | 2 +- .../Form/Type/GroupType.php | 5 +- .../UserBundle/Form/Type/UserEntityType.php | 26 ++++ .../Form/Type/UserType.php | 12 +- .../OAuth/UserProvider.php | 4 +- .../UserBundle/Provider/UserProvider.php | 21 ++++ .../Provider/UserProviderInterface.php | 22 ++++ src/Sylius/Bundle/UserBundle/README.md | 75 ++++++++++++ .../config/doctrine/model/Group.orm.xml | 2 +- .../config/doctrine/model/User.mongodb.xml | 33 ++++++ .../config/doctrine/model/User.orm.xml | 58 +++++++++ .../config/doctrine/model/UserOAuth.orm.xml | 4 +- .../Resources/config/driver/doctrine/orm.xml | 37 ++++++ .../UserBundle/Resources/config/services.xml | 55 +++++++++ .../UserBundle/Resources/config/twig.xml | 30 +++++ .../Resources/config/validation.xml | 87 ++++++++++++++ .../Bundle/UserBundle/Resources/meta/LICENSE | 19 +++ .../Resources/translations/messages.en.yml | 16 +++ .../Resources/translations/validators.en.yml | 16 +++ .../Bundle/UserBundle/SyliusUserBundle.php | 53 +++++++++ .../UserBundle/Twig/LocaleExtension.php | 63 ++++++++++ src/Sylius/Bundle/UserBundle/composer.json | 52 ++++++++ src/Sylius/Bundle/UserBundle/phpspec.yml | 5 + .../EventListener/UserAwareListenerSpec.php | 6 +- .../EventListener/UserDeleteListenerSpec.php | 4 +- .../spec/OAuth/UserProviderSpec.php | 4 +- .../Frontend/Account/OrderController.php | 2 +- src/Sylius/Component/Core/Model/Order.php | 6 +- src/Sylius/Component/Core/Model/User.php | 4 +- .../Component/Core/Model/UserInterface.php | 4 +- .../Core/Pricing/GroupBasedCalculator.php | 2 +- .../Checker/PromotionEligibilityChecker.php | 2 +- .../Component/Core/spec/Model/UserSpec.php | 2 +- .../spec/Pricing/GroupBasedCalculatorSpec.php | 2 +- src/Sylius/Component/User/CHANGELOG.md | 2 +- .../Component/{Core => User}/Model/Group.php | 2 +- .../{Core => User}/Model/GroupInterface.php | 2 +- src/Sylius/Component/User/Model/User.php | 12 +- .../Component/User/Model/UserInterface.php | 7 ++ src/Sylius/Component/User/README.md | 6 +- src/Sylius/Component/User/composer.json | 4 +- .../{Core => User}/spec/Model/GroupSpec.php | 6 +- .../Component/User/spec/Model/UserSpec.php | 46 ++++++- 73 files changed, 992 insertions(+), 245 deletions(-) create mode 100644 src/Sylius/Bundle/UserBundle/.gitignore create mode 100644 src/Sylius/Bundle/UserBundle/.travis.yml rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Behat/OAuthContext.php (94%) create mode 100644 src/Sylius/Bundle/UserBundle/CHANGELOG.md create mode 100644 src/Sylius/Bundle/UserBundle/DependencyInjection/Configuration.php create mode 100644 src/Sylius/Bundle/UserBundle/DependencyInjection/SyliusUserExtension.php rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Doctrine/ORM/GroupRepository.php (91%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Doctrine/ORM/UserRepository.php (98%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/EventListener/UserAwareListener.php (90%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/EventListener/UserDeleteListener.php (97%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/EventListener/UserUpdateListener.php (95%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Form/Type/GroupChoiceType.php (92%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Form/Type/GroupEntityType.php (91%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Form/Type/GroupType.php (88%) create mode 100644 src/Sylius/Bundle/UserBundle/Form/Type/UserEntityType.php rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Form/Type/UserType.php (88%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/OAuth/UserProvider.php (97%) create mode 100644 src/Sylius/Bundle/UserBundle/Provider/UserProvider.php create mode 100644 src/Sylius/Bundle/UserBundle/Provider/UserProviderInterface.php create mode 100644 src/Sylius/Bundle/UserBundle/README.md rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Resources/config/doctrine/model/Group.orm.xml (89%) create mode 100644 src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.mongodb.xml create mode 100644 src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.orm.xml rename src/Sylius/Bundle/{CoreBundle => UserBundle}/Resources/config/doctrine/model/UserOAuth.orm.xml (91%) create mode 100644 src/Sylius/Bundle/UserBundle/Resources/config/driver/doctrine/orm.xml create mode 100644 src/Sylius/Bundle/UserBundle/Resources/config/services.xml create mode 100644 src/Sylius/Bundle/UserBundle/Resources/config/twig.xml create mode 100644 src/Sylius/Bundle/UserBundle/Resources/config/validation.xml create mode 100644 src/Sylius/Bundle/UserBundle/Resources/meta/LICENSE create mode 100644 src/Sylius/Bundle/UserBundle/Resources/translations/messages.en.yml create mode 100644 src/Sylius/Bundle/UserBundle/Resources/translations/validators.en.yml create mode 100644 src/Sylius/Bundle/UserBundle/SyliusUserBundle.php create mode 100644 src/Sylius/Bundle/UserBundle/Twig/LocaleExtension.php create mode 100644 src/Sylius/Bundle/UserBundle/composer.json create mode 100644 src/Sylius/Bundle/UserBundle/phpspec.yml rename src/Sylius/Bundle/{CoreBundle => UserBundle}/spec/EventListener/UserAwareListenerSpec.php (92%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/spec/EventListener/UserDeleteListenerSpec.php (95%) rename src/Sylius/Bundle/{CoreBundle => UserBundle}/spec/OAuth/UserProviderSpec.php (97%) rename src/Sylius/Component/{Core => User}/Model/Group.php (92%) rename src/Sylius/Component/{Core => User}/Model/GroupInterface.php (91%) rename src/Sylius/Component/{Core => User}/spec/Model/GroupSpec.php (77%) diff --git a/behat.yml.dist b/behat.yml.dist index 980821f7d3..bfaaecb7e1 100644 --- a/behat.yml.dist +++ b/behat.yml.dist @@ -147,7 +147,7 @@ default: contexts: - Behat\MinkExtension\Context\MinkContext - Sylius\Bundle\CoreBundle\Behat\HookContext - - Sylius\Bundle\CoreBundle\Behat\OAuthContext + - Sylius\Bundle\UserBundle\Behat\OAuthContext - Sylius\Bundle\MoneyBundle\Behat\MoneyContext - Sylius\Bundle\ChannelBundle\Behat\ChannelContext - Sylius\Bundle\WebBundle\Behat\WebContext diff --git a/src/Sylius/Bundle/CoreBundle/Checkout/Step/FinalizeStep.php b/src/Sylius/Bundle/CoreBundle/Checkout/Step/FinalizeStep.php index d1a5475067..4a30681701 100644 --- a/src/Sylius/Bundle/CoreBundle/Checkout/Step/FinalizeStep.php +++ b/src/Sylius/Bundle/CoreBundle/Checkout/Step/FinalizeStep.php @@ -42,11 +42,9 @@ class FinalizeStep extends CheckoutStep { $order = $this->getCurrentCart(); $this->dispatchCheckoutEvent(SyliusCheckoutEvents::FINALIZE_INITIALIZE, $order); - - $order->setUser($this->getUser()); - + $this->completeOrder($order); - + return $this->complete(); } diff --git a/src/Sylius/Bundle/CoreBundle/DependencyInjection/Configuration.php b/src/Sylius/Bundle/CoreBundle/DependencyInjection/Configuration.php index 61983e19aa..9b869dee55 100644 --- a/src/Sylius/Bundle/CoreBundle/DependencyInjection/Configuration.php +++ b/src/Sylius/Bundle/CoreBundle/DependencyInjection/Configuration.php @@ -51,29 +51,6 @@ class Configuration implements ConfigurationInterface ->arrayNode('classes') ->addDefaultsIfNotSet() ->children() - ->arrayNode('user') - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('model')->defaultValue('Sylius\Component\Core\Model\User')->end() - ->scalarNode('controller')->defaultValue('Sylius\Bundle\CoreBundle\Controller\UserController')->end() - ->scalarNode('form')->defaultValue('Sylius\Bundle\CoreBundle\Form\Type\UserType')->end() - ->end() - ->end() - ->arrayNode('user_oauth') - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('model')->defaultValue('Sylius\Component\Core\Model\UserOAuth')->end() - ->scalarNode('controller')->defaultValue('Sylius\Bundle\ResourceBundle\Controller\ResourceController')->end() - ->end() - ->end() - ->arrayNode('group') - ->addDefaultsIfNotSet() - ->children() - ->scalarNode('model')->defaultValue('Sylius\Component\Core\Model\Group')->end() - ->scalarNode('controller')->defaultValue('Sylius\Bundle\ResourceBundle\Controller\ResourceController')->end() - ->scalarNode('form')->defaultValue('Sylius\Bundle\CoreBundle\Form\Type\GroupType')->end() - ->end() - ->end() ->arrayNode('product_variant_image') ->addDefaultsIfNotSet() ->children() diff --git a/src/Sylius/Bundle/CoreBundle/DependencyInjection/SyliusCoreExtension.php b/src/Sylius/Bundle/CoreBundle/DependencyInjection/SyliusCoreExtension.php index 4105e1cbcf..c54d2f552f 100644 --- a/src/Sylius/Bundle/CoreBundle/DependencyInjection/SyliusCoreExtension.php +++ b/src/Sylius/Bundle/CoreBundle/DependencyInjection/SyliusCoreExtension.php @@ -50,6 +50,7 @@ class SyliusCoreExtension extends AbstractResourceExtension implements PrependEx 'sylius_mailer', 'sylius_taxation', 'sylius_taxonomy', + 'sylius_user', 'sylius_variation', 'sylius_translation', 'sylius_rbac', diff --git a/src/Sylius/Bundle/CoreBundle/Form/Type/Rule/UserGroupType.php b/src/Sylius/Bundle/CoreBundle/Form/Type/Rule/UserGroupType.php index 838e63d3b8..926cdb8140 100644 --- a/src/Sylius/Bundle/CoreBundle/Form/Type/Rule/UserGroupType.php +++ b/src/Sylius/Bundle/CoreBundle/Form/Type/Rule/UserGroupType.php @@ -14,7 +14,7 @@ namespace Sylius\Bundle\CoreBundle\Form\Type\Rule; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; -use Sylius\Bundle\CoreBundle\Doctrine\ORM\GroupRepository; +use Sylius\Bundle\UserBundle\Doctrine\ORM\GroupRepository; use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Constraints\Type; diff --git a/src/Sylius/Bundle/CoreBundle/Kernel/Kernel.php b/src/Sylius/Bundle/CoreBundle/Kernel/Kernel.php index 79ecf4372f..0ff80074c2 100644 --- a/src/Sylius/Bundle/CoreBundle/Kernel/Kernel.php +++ b/src/Sylius/Bundle/CoreBundle/Kernel/Kernel.php @@ -69,6 +69,7 @@ abstract class Kernel extends BaseKernel new \Sylius\Bundle\ContentBundle\SyliusContentBundle(), new \Sylius\Bundle\SearchBundle\SyliusSearchBundle(), new \Sylius\Bundle\RbacBundle\SyliusRbacBundle(), + new \Sylius\Bundle\UserBundle\SyliusUserBundle(), new \Sylius\Bundle\CoreBundle\SyliusCoreBundle(), new \Sylius\Bundle\WebBundle\SyliusWebBundle(), diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/app/main.yml b/src/Sylius/Bundle/CoreBundle/Resources/config/app/main.yml index 921c009c5b..2facd7c2e2 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/app/main.yml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/app/main.yml @@ -70,7 +70,7 @@ fos_user: firewall_name: main user_class: %sylius.model.user.class% group: - group_class: Sylius\Component\Core\Model\Group + group_class: %sylius.model.group.class% profile: form: type: sylius_user_profile diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/app/sylius.yml b/src/Sylius/Bundle/CoreBundle/Resources/config/app/sylius.yml index e82984f952..52ae8ffed7 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/app/sylius.yml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/app/sylius.yml @@ -180,7 +180,7 @@ sylius_order: sylius_sequence: generators: %sylius.model.order.class%: sylius.sequence.sequential_number_generator - + sylius_pricing: forms: - sylius_product_variant @@ -699,3 +699,8 @@ sylius_rbac: administrator: [catalog_manager, sales_manager, marketing_manager, accounts_manager, shipping_manager, content_editor, tax_manager, it, support] it: [security_auditor, developer] +sylius_user: + classes: + user: + model: Sylius\Component\Core\Model\User + controller: Sylius\Bundle\CoreBundle\Controller\UserController diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Address.orm.xml b/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Address.orm.xml index c916348c33..e9c8d17642 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Address.orm.xml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Address.orm.xml @@ -14,7 +14,7 @@ - + diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Order.orm.xml b/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Order.orm.xml index 21bc47826c..8169898d3b 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Order.orm.xml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Order.orm.xml @@ -60,7 +60,7 @@ - + diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/User.orm.xml b/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/User.orm.xml index b33c98d4f1..d2078cd2cb 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/User.orm.xml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/User.orm.xml @@ -18,21 +18,8 @@ http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> - - - - - - - - - - - - - diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/driver/doctrine/orm.xml b/src/Sylius/Bundle/CoreBundle/Resources/config/driver/doctrine/orm.xml index 4d16187d8f..9c667786b3 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/driver/doctrine/orm.xml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/driver/doctrine/orm.xml @@ -17,22 +17,7 @@ http://symfony.com/schema/dic/services/services-1.0.xsd"> - Sylius\Bundle\CoreBundle\Doctrine\ORM\GroupRepository - Sylius\Bundle\CoreBundle\Doctrine\ORM\UserRepository Sylius\Component\Core\Model\VariantImage - Sylius\Bundle\CoreBundle\Form\Type\UserEntityType - Sylius\Bundle\CoreBundle\Form\Type\GroupEntityType - - - %sylius.model.user.class% - - - - %sylius.model.group.class% - - - - diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/form.xml b/src/Sylius/Bundle/CoreBundle/Resources/config/form.xml index e69e0795d4..c459c53b74 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/form.xml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/form.xml @@ -94,17 +94,6 @@ - - %sylius.model.user.class% - - - - %sylius.model.group.class% - - sylius - - - %sylius.model.order.class% diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/services.xml b/src/Sylius/Bundle/CoreBundle/Resources/config/services.xml index ca3e70df0e..cf6e7c40ba 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/services.xml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/services.xml @@ -48,9 +48,6 @@ Sylius\Bundle\CoreBundle\EventListener\OrderPricingListener Sylius\Bundle\CoreBundle\EventListener\OrderShippingListener Sylius\Bundle\CoreBundle\EventListener\OrderTaxationListener - Sylius\Bundle\CoreBundle\EventListener\UserAwareListener - Sylius\Bundle\CoreBundle\EventListener\UserUpdateListener - Sylius\Bundle\CoreBundle\EventListener\UserDeleteListener Sylius\Bundle\CoreBundle\EventListener\RestrictedZoneListener Sylius\Bundle\CoreBundle\EventListener\PurchaseListener Sylius\Bundle\CoreBundle\EventListener\CheckoutAddressingListener @@ -81,7 +78,7 @@ Sylius\Component\Core\Pricing\ChannelBasedCalculator Sylius\Component\Core\Pricing\GroupBasedCalculator Sylius\Component\Core\Pricing\ZoneBasedCalculator - Sylius\Bundle\CoreBundle\OAuth\UserProvider + Sylius\Bundle\UserBundle\OAuth\UserProvider Sylius\Bundle\CoreBundle\DataCollector\SyliusDataCollector Symfony\Cmf\Component\Routing\DynamicRouter Sylius\Bundle\CoreBundle\Routing\SyliusAwareGenerator @@ -224,23 +221,6 @@ - - - - - - - - - - sylius_backend_user_index - - - - - - - @@ -307,6 +287,11 @@ + + + + + diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/validation.xml b/src/Sylius/Bundle/CoreBundle/Resources/config/validation.xml index e2ea487df3..6b3473769d 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/validation.xml +++ b/src/Sylius/Bundle/CoreBundle/Resources/config/validation.xml @@ -100,77 +100,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/src/Sylius/Bundle/CoreBundle/Resources/translations/validators.en.yml b/src/Sylius/Bundle/CoreBundle/Resources/translations/validators.en.yml index 91721099d5..2e158f2bad 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/translations/validators.en.yml +++ b/src/Sylius/Bundle/CoreBundle/Resources/translations/validators.en.yml @@ -1,22 +1,12 @@ sylius: - group: - name: - max: Group name must not be longer than {{ limit }} characters. - min: Group name must be at least {{ limit }} characters long. - not_blank: Please enter group name. locale: code: not_blank: Please enter locale code. unique: This locale already exists. - user: - first_name: - max: First name must not be longer than {{ limit }} characters. - min: First name must be at least {{ limit }} characters long. - not_blank: Please enter your first name. - last_name: - max: Last name must not be longer than {{ limit }} characters. - min: Last name must be at least {{ limit }} characters long. - not_blank: Please enter your last name. + sylius_shipping: + method: + zone: + not_blank: Please enter shipping method zone. product_variant: onHand: min: On hand must be greater than {{ limit }}. @@ -27,11 +17,7 @@ sylius: product_translation: short_description: max: Short description must not be longer then {{ limit }} characters. - -sylius_shipping: - method: - zone: - not_blank: Please enter shipping method zone. + sylius_taxation: rate: zone: diff --git a/src/Sylius/Bundle/CoreBundle/SyliusCoreBundle.php b/src/Sylius/Bundle/CoreBundle/SyliusCoreBundle.php index da326cd323..cde3fbd4f3 100644 --- a/src/Sylius/Bundle/CoreBundle/SyliusCoreBundle.php +++ b/src/Sylius/Bundle/CoreBundle/SyliusCoreBundle.php @@ -52,9 +52,6 @@ class SyliusCoreBundle extends AbstractResourceBundle protected function getModelInterfaces() { return array( - 'Sylius\Component\Core\Model\UserInterface' => 'sylius.model.user.class', - 'Sylius\Component\Core\Model\UserOAuthInterface' => 'sylius.model.user_oauth.class', - 'Sylius\Component\Core\Model\GroupInterface' => 'sylius.model.group.class', 'Sylius\Component\Core\Model\ProductVariantImageInterface' => 'sylius.model.product_variant_image.class', ); } diff --git a/src/Sylius/Bundle/FixturesBundle/DataFixtures/ORM/LoadGroupsData.php b/src/Sylius/Bundle/FixturesBundle/DataFixtures/ORM/LoadGroupsData.php index fc332c5c19..f51ce564b6 100644 --- a/src/Sylius/Bundle/FixturesBundle/DataFixtures/ORM/LoadGroupsData.php +++ b/src/Sylius/Bundle/FixturesBundle/DataFixtures/ORM/LoadGroupsData.php @@ -13,7 +13,7 @@ namespace Sylius\Bundle\FixturesBundle\DataFixtures\ORM; use Doctrine\Common\Persistence\ObjectManager; use Sylius\Bundle\FixturesBundle\DataFixtures\DataFixture; -use Sylius\Component\Core\Model\GroupInterface; +use Sylius\Component\User\Model\GroupInterface; /** * Group fixtures. diff --git a/src/Sylius/Bundle/UserBundle/.gitignore b/src/Sylius/Bundle/UserBundle/.gitignore new file mode 100644 index 0000000000..46aed33710 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/.gitignore @@ -0,0 +1,5 @@ +vendor/ +bin/ + +composer.phar +composer.lock diff --git a/src/Sylius/Bundle/UserBundle/.travis.yml b/src/Sylius/Bundle/UserBundle/.travis.yml new file mode 100644 index 0000000000..bafa33dcfa --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/.travis.yml @@ -0,0 +1,13 @@ +language: php + +php: + - 5.3 + - 5.4 + - 5.5 + +before_script: composer install --prefer-source --no-interaction + +script: bin/phpspec run -fpretty --verbose + +notifications: + irc: "irc.freenode.org#sylius-dev" diff --git a/src/Sylius/Bundle/CoreBundle/Behat/OAuthContext.php b/src/Sylius/Bundle/UserBundle/Behat/OAuthContext.php similarity index 94% rename from src/Sylius/Bundle/CoreBundle/Behat/OAuthContext.php rename to src/Sylius/Bundle/UserBundle/Behat/OAuthContext.php index 4bdcfe6c46..9389a0497f 100644 --- a/src/Sylius/Bundle/CoreBundle/Behat/OAuthContext.php +++ b/src/Sylius/Bundle/UserBundle/Behat/OAuthContext.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\Behat; +namespace Sylius\Bundle\UserBundle\Behat; use Behat\MinkExtension\Context\RawMinkContext; diff --git a/src/Sylius/Bundle/UserBundle/CHANGELOG.md b/src/Sylius/Bundle/UserBundle/CHANGELOG.md new file mode 100644 index 0000000000..723af1b6eb --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/CHANGELOG.md @@ -0,0 +1,6 @@ +CHANGELOG +========= + +### v0.13.0 + +* Initial dev release. diff --git a/src/Sylius/Bundle/UserBundle/DependencyInjection/Configuration.php b/src/Sylius/Bundle/UserBundle/DependencyInjection/Configuration.php new file mode 100644 index 0000000000..6442eddc15 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/DependencyInjection/Configuration.php @@ -0,0 +1,112 @@ + + */ +class Configuration implements ConfigurationInterface +{ + /** + * {@inheritdoc} + */ + public function getConfigTreeBuilder() + { + $treeBuilder = new TreeBuilder(); + $rootNode = $treeBuilder->root('sylius_user'); + + $rootNode + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('driver')->cannotBeOverwritten()->isRequired()->cannotBeEmpty()->end() + ->scalarNode('currency_storage')->defaultValue('sylius.storage.session')->end() + ->end() + ; + + $this->addValidationGroupsSection($rootNode); + $this->addClassesSection($rootNode); + + return $treeBuilder; + } + + /** + * Adds `validation_groups` section. + * + * @param ArrayNodeDefinition $node + */ + private function addValidationGroupsSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('validation_groups') + ->addDefaultsIfNotSet() + ->children() + ->arrayNode('user') + ->prototype('scalar')->end() + ->defaultValue(array('sylius')) + ->end() + ->end() + ->end() + ->end() + ; + } + + /** + * Adds `classes` section. + * + * @param ArrayNodeDefinition $node + */ + private function addClassesSection(ArrayNodeDefinition $node) + { + $node + ->children() + ->arrayNode('classes') + ->addDefaultsIfNotSet() + ->children() + ->arrayNode('user') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('model')->defaultValue('Sylius\Component\User\Model\User')->end() + ->scalarNode('controller')->defaultValue('Sylius\Bundle\ResourceBundle\Controller\ResourceController')->end() + ->scalarNode('form')->defaultValue('Sylius\Bundle\UserBundle\Form\Type\UserType')->end() + ->end() + ->end() + ->arrayNode('user_oauth') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('model')->defaultValue('Sylius\Component\User\Model\UserOAuth')->end() + ->scalarNode('controller')->defaultValue('Sylius\Bundle\ResourceBundle\Controller\ResourceController')->end() + ->end() + ->end() + ->arrayNode('group') + ->addDefaultsIfNotSet() + ->children() + ->scalarNode('model')->defaultValue('Sylius\Component\User\Model\Group')->end() + ->scalarNode('controller')->defaultValue('Sylius\Bundle\ResourceBundle\Controller\ResourceController')->end() + ->scalarNode('form')->defaultValue('Sylius\Bundle\UserBundle\Form\Type\GroupType')->end() + ->end() + ->end() + ->end() + ->end() + ->end() + ; + } +} diff --git a/src/Sylius/Bundle/UserBundle/DependencyInjection/SyliusUserExtension.php b/src/Sylius/Bundle/UserBundle/DependencyInjection/SyliusUserExtension.php new file mode 100644 index 0000000000..b30e90e370 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/DependencyInjection/SyliusUserExtension.php @@ -0,0 +1,44 @@ + + */ +class SyliusUserExtension extends AbstractResourceExtension +{ + protected $configFiles = array( + 'services', + 'form', + 'templating', + 'twig', + ); + + /** + * {@inheritdoc} + */ + public function load(array $config, ContainerBuilder $container) + { + list($config) = $this->configure( + $config, + new Configuration(), + $container, + self::CONFIGURE_LOADER | self::CONFIGURE_DATABASE | self::CONFIGURE_PARAMETERS | self::CONFIGURE_VALIDATORS + ); + } +} diff --git a/src/Sylius/Bundle/CoreBundle/Doctrine/ORM/GroupRepository.php b/src/Sylius/Bundle/UserBundle/Doctrine/ORM/GroupRepository.php similarity index 91% rename from src/Sylius/Bundle/CoreBundle/Doctrine/ORM/GroupRepository.php rename to src/Sylius/Bundle/UserBundle/Doctrine/ORM/GroupRepository.php index 0794da2cd4..f1c3345d4d 100644 --- a/src/Sylius/Bundle/CoreBundle/Doctrine/ORM/GroupRepository.php +++ b/src/Sylius/Bundle/UserBundle/Doctrine/ORM/GroupRepository.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\Doctrine\ORM; +namespace Sylius\Bundle\UserBundle\Doctrine\ORM; use Sylius\Bundle\ResourceBundle\Doctrine\ORM\EntityRepository; diff --git a/src/Sylius/Bundle/CoreBundle/Doctrine/ORM/UserRepository.php b/src/Sylius/Bundle/UserBundle/Doctrine/ORM/UserRepository.php similarity index 98% rename from src/Sylius/Bundle/CoreBundle/Doctrine/ORM/UserRepository.php rename to src/Sylius/Bundle/UserBundle/Doctrine/ORM/UserRepository.php index fdae70e99b..58a05dcfbf 100644 --- a/src/Sylius/Bundle/CoreBundle/Doctrine/ORM/UserRepository.php +++ b/src/Sylius/Bundle/UserBundle/Doctrine/ORM/UserRepository.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\Doctrine\ORM; +namespace Sylius\Bundle\UserBundle\Doctrine\ORM; use Pagerfanta\PagerfantaInterface; use Sylius\Bundle\ResourceBundle\Doctrine\ORM\EntityRepository; diff --git a/src/Sylius/Bundle/CoreBundle/EventListener/UserAwareListener.php b/src/Sylius/Bundle/UserBundle/EventListener/UserAwareListener.php similarity index 90% rename from src/Sylius/Bundle/CoreBundle/EventListener/UserAwareListener.php rename to src/Sylius/Bundle/UserBundle/EventListener/UserAwareListener.php index 44711f9327..cffa838c72 100644 --- a/src/Sylius/Bundle/CoreBundle/EventListener/UserAwareListener.php +++ b/src/Sylius/Bundle/UserBundle/EventListener/UserAwareListener.php @@ -9,10 +9,10 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\EventListener; +namespace Sylius\Bundle\UserBundle\EventListener; use Sylius\Component\Cart\Event\CartEvent; -use Sylius\Component\Core\Model\UserAwareInterface; +use Sylius\Component\User\Model\UserAwareInterface; use Sylius\Component\Resource\Exception\UnexpectedTypeException; use Symfony\Component\EventDispatcher\GenericEvent; use Symfony\Component\Security\Core\SecurityContextInterface; @@ -35,7 +35,7 @@ class UserAwareListener } if (!$resource instanceof UserAwareInterface) { - throw new UnexpectedTypeException($resource, 'Sylius\Component\Core\Model\UserAwareInterface'); + throw new UnexpectedTypeException($resource, 'Sylius\Component\User\Model\UserAwareInterface'); } if (null === $user = $this->getUser()) { diff --git a/src/Sylius/Bundle/CoreBundle/EventListener/UserDeleteListener.php b/src/Sylius/Bundle/UserBundle/EventListener/UserDeleteListener.php similarity index 97% rename from src/Sylius/Bundle/CoreBundle/EventListener/UserDeleteListener.php rename to src/Sylius/Bundle/UserBundle/EventListener/UserDeleteListener.php index 5909412885..2c47f95ec4 100644 --- a/src/Sylius/Bundle/CoreBundle/EventListener/UserDeleteListener.php +++ b/src/Sylius/Bundle/UserBundle/EventListener/UserDeleteListener.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\EventListener; +namespace Sylius\Bundle\UserBundle\EventListener; use FOS\UserBundle\Model\UserInterface; use Sylius\Component\Resource\Exception\UnexpectedTypeException; diff --git a/src/Sylius/Bundle/CoreBundle/EventListener/UserUpdateListener.php b/src/Sylius/Bundle/UserBundle/EventListener/UserUpdateListener.php similarity index 95% rename from src/Sylius/Bundle/CoreBundle/EventListener/UserUpdateListener.php rename to src/Sylius/Bundle/UserBundle/EventListener/UserUpdateListener.php index 74ed1648a7..e53be7d415 100644 --- a/src/Sylius/Bundle/CoreBundle/EventListener/UserUpdateListener.php +++ b/src/Sylius/Bundle/UserBundle/EventListener/UserUpdateListener.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\EventListener; +namespace Sylius\Bundle\UserBundle\EventListener; use FOS\UserBundle\Model\UserInterface; use FOS\UserBundle\Model\UserManagerInterface; diff --git a/src/Sylius/Bundle/CoreBundle/Form/Type/GroupChoiceType.php b/src/Sylius/Bundle/UserBundle/Form/Type/GroupChoiceType.php similarity index 92% rename from src/Sylius/Bundle/CoreBundle/Form/Type/GroupChoiceType.php rename to src/Sylius/Bundle/UserBundle/Form/Type/GroupChoiceType.php index 6a73adf75c..0d272216b3 100644 --- a/src/Sylius/Bundle/CoreBundle/Form/Type/GroupChoiceType.php +++ b/src/Sylius/Bundle/UserBundle/Form/Type/GroupChoiceType.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\Form\Type; +namespace Sylius\Bundle\UserBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\OptionsResolver\OptionsResolverInterface; @@ -46,7 +46,7 @@ abstract class GroupChoiceType extends AbstractType $resolver ->setDefaults(array( 'class' => $this->className, - 'property' => 'name' + 'property' => 'name', )) ; } diff --git a/src/Sylius/Bundle/CoreBundle/Form/Type/GroupEntityType.php b/src/Sylius/Bundle/UserBundle/Form/Type/GroupEntityType.php similarity index 91% rename from src/Sylius/Bundle/CoreBundle/Form/Type/GroupEntityType.php rename to src/Sylius/Bundle/UserBundle/Form/Type/GroupEntityType.php index d4e8909be0..1865d359eb 100644 --- a/src/Sylius/Bundle/CoreBundle/Form/Type/GroupEntityType.php +++ b/src/Sylius/Bundle/UserBundle/Form/Type/GroupEntityType.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\Form\Type; +namespace Sylius\Bundle\UserBundle\Form\Type; /** * Group choice form type. diff --git a/src/Sylius/Bundle/CoreBundle/Form/Type/GroupType.php b/src/Sylius/Bundle/UserBundle/Form/Type/GroupType.php similarity index 88% rename from src/Sylius/Bundle/CoreBundle/Form/Type/GroupType.php rename to src/Sylius/Bundle/UserBundle/Form/Type/GroupType.php index 1212716a4c..a23c17e4be 100644 --- a/src/Sylius/Bundle/CoreBundle/Form/Type/GroupType.php +++ b/src/Sylius/Bundle/UserBundle/Form/Type/GroupType.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\Form\Type; +namespace Sylius\Bundle\UserBundle\Form\Type; use Sylius\Bundle\ResourceBundle\Form\Type\AbstractResourceType; use Symfony\Component\Form\FormBuilderInterface; @@ -28,10 +28,9 @@ class GroupType extends AbstractResourceType { $builder ->add('name', 'text', array( - 'label' => 'sylius.form.group.name' + 'label' => 'sylius.form.group.name', )) ; - } /** diff --git a/src/Sylius/Bundle/UserBundle/Form/Type/UserEntityType.php b/src/Sylius/Bundle/UserBundle/Form/Type/UserEntityType.php new file mode 100644 index 0000000000..3c33c641db --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Form/Type/UserEntityType.php @@ -0,0 +1,26 @@ + + */ +class UserEntityType extends UserChoiceType +{ + /** + * {@inheritdoc} + */ + public function getParent() + { + return 'entity'; + } +} diff --git a/src/Sylius/Bundle/CoreBundle/Form/Type/UserType.php b/src/Sylius/Bundle/UserBundle/Form/Type/UserType.php similarity index 88% rename from src/Sylius/Bundle/CoreBundle/Form/Type/UserType.php rename to src/Sylius/Bundle/UserBundle/Form/Type/UserType.php index 40ab46a0a5..4335d916cf 100644 --- a/src/Sylius/Bundle/CoreBundle/Form/Type/UserType.php +++ b/src/Sylius/Bundle/UserBundle/Form/Type/UserType.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\Form\Type; +namespace Sylius\Bundle\UserBundle\Form\Type; use FOS\UserBundle\Form\Type\ProfileFormType; use Symfony\Component\Form\FormBuilderInterface; @@ -36,10 +36,10 @@ class UserType extends ProfileFormType { $builder ->add('firstName', 'text', array( - 'label' => 'sylius.form.user.first_name' + 'label' => 'sylius.form.user.first_name', )) ->add('lastName', 'text', array( - 'label' => 'sylius.form.user.last_name' + 'label' => 'sylius.form.user.last_name', )) ; @@ -47,15 +47,15 @@ class UserType extends ProfileFormType $builder ->add('plainPassword', 'password', array( - 'label' => 'sylius.form.user.password' + 'label' => 'sylius.form.user.password', )) ->add('enabled', 'checkbox', array( - 'label' => 'sylius.form.user.enabled' + 'label' => 'sylius.form.user.enabled', )) ->add('groups', 'sylius_group_choice', array( 'label' => 'sylius.form.user.groups', 'multiple' => true, - 'required' => false + 'required' => false, )) ->add('authorizationRoles', 'sylius_role_choice', array( 'label' => 'sylius.form.user.roles', diff --git a/src/Sylius/Bundle/CoreBundle/OAuth/UserProvider.php b/src/Sylius/Bundle/UserBundle/OAuth/UserProvider.php similarity index 97% rename from src/Sylius/Bundle/CoreBundle/OAuth/UserProvider.php rename to src/Sylius/Bundle/UserBundle/OAuth/UserProvider.php index 75c8f81ad4..70cdda9439 100644 --- a/src/Sylius/Bundle/CoreBundle/OAuth/UserProvider.php +++ b/src/Sylius/Bundle/UserBundle/OAuth/UserProvider.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Bundle\CoreBundle\OAuth; +namespace Sylius\Bundle\UserBundle\OAuth; use FOS\UserBundle\Model\UserInterface as FOSUserInterface; use FOS\UserBundle\Model\UserManagerInterface; @@ -53,7 +53,7 @@ class UserProvider extends FOSUBUserProvider { $oauth = $this->oauthRepository->findOneBy(array( 'provider' => $response->getResourceOwner()->getName(), - 'identifier' => $response->getUsername() + 'identifier' => $response->getUsername(), )); if ($oauth instanceof UserOAuthInterface) { diff --git a/src/Sylius/Bundle/UserBundle/Provider/UserProvider.php b/src/Sylius/Bundle/UserBundle/Provider/UserProvider.php new file mode 100644 index 0000000000..298a15a55c --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Provider/UserProvider.php @@ -0,0 +1,21 @@ + + */ +class UserProvider extends BaseLocaleProvider implements LocaleProviderInterface +{ +} diff --git a/src/Sylius/Bundle/UserBundle/Provider/UserProviderInterface.php b/src/Sylius/Bundle/UserBundle/Provider/UserProviderInterface.php new file mode 100644 index 0000000000..9a3a8f1593 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Provider/UserProviderInterface.php @@ -0,0 +1,22 @@ + + */ +interface UserProviderInterface extends BaseLocaleProviderInterface, FormLocaleProviderInterface +{ +} diff --git a/src/Sylius/Bundle/UserBundle/README.md b/src/Sylius/Bundle/UserBundle/README.md new file mode 100644 index 0000000000..bdd69789b4 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/README.md @@ -0,0 +1,75 @@ +SyliusUserBundle [![Build status...](https://secure.travis-ci.org/Sylius/SyliusUserBundle.png?branch=master)](http://travis-ci.org/Sylius/SyliusUserBundle) +================== + +[**Symfony2**](http://symfony.com) integration of Sylius User processing +component. + +Sylius +------ + +**Sylius** - Modern ecommerce for Symfony2. Visit [Sylius.org](http://sylius.org). + +[phpspec](http://phpspec.net) examples +-------------------------------------- + +```bash +$ composer install +$ bin/phpspec run -f pretty +``` + +Documentation +------------- + +Documentation is available on [**docs.sylius.org**](http://sylius.org/en/latest/bundles/SyliusUserBundle/index.html). + +Contributing +------------ + +All informations about contributing to Sylius can be found on [this page](http://docs.sylius.org/en/latest/contributing/index.html). + +Mailing lists +------------- + +### Users + +Questions? Feel free to ask on [users mailing list](http://groups.google.com/group/sylius). + +### Developers + +To contribute and develop this bundle, use the [developers mailing list](http://groups.google.com/group/sylius-dev). + +Sylius twitter account +---------------------- + +If you want to keep up with updates, [follow the official Sylius account on twitter](http://twitter.com/Sylius). + +Bug tracking +------------ + +This bundle uses [GitHub issues](https://github.com/Sylius/SyliusUserBundle/issues). +If you have found bug, please create an issue. + +Versioning +---------- + +Releases will be numbered with the format `major.minor.patch`. + +And constructed with the following guidelines. + +* Breaking backwards compatibility bumps the major. +* New additions without breaking backwards compatibility bumps the minor. +* Bug fixes and misc changes bump the patch. + +For more information on SemVer, please visit [semver.org website](http://semver.org/)... +This versioning method is same for all **Sylius** bundles and applications. + +MIT License +----------- + +License can be found [here](https://github.com/Sylius/SyliusUserBundle/blob/master/Resources/meta/LICENSE). + +Authors +------- + +The bundle was originally created by [Paweł Jędrzejewski](http://pjedrzejewski.com). +See the list of [contributors](https://github.com/Sylius/SyliusUserBundle/contributors). diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Group.orm.xml b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/Group.orm.xml similarity index 89% rename from src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Group.orm.xml rename to src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/Group.orm.xml index 0819540ae8..2c762a28a2 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/Group.orm.xml +++ b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/Group.orm.xml @@ -5,7 +5,7 @@ xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> - + diff --git a/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.mongodb.xml b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.mongodb.xml new file mode 100644 index 0000000000..e808831c1d --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.mongodb.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.orm.xml b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.orm.xml new file mode 100644 index 0000000000..7b95b2c3bd --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/User.orm.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/UserOAuth.orm.xml b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/UserOAuth.orm.xml similarity index 91% rename from src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/UserOAuth.orm.xml rename to src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/UserOAuth.orm.xml index 010a018881..b92ed5bc25 100644 --- a/src/Sylius/Bundle/CoreBundle/Resources/config/doctrine/model/UserOAuth.orm.xml +++ b/src/Sylius/Bundle/UserBundle/Resources/config/doctrine/model/UserOAuth.orm.xml @@ -16,7 +16,7 @@ xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"> - + @@ -29,7 +29,7 @@ - + diff --git a/src/Sylius/Bundle/UserBundle/Resources/config/driver/doctrine/orm.xml b/src/Sylius/Bundle/UserBundle/Resources/config/driver/doctrine/orm.xml new file mode 100644 index 0000000000..481859f1cd --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/config/driver/doctrine/orm.xml @@ -0,0 +1,37 @@ + + + + + + + + Sylius\Bundle\UserBundle\Doctrine\ORM\GroupRepository + Sylius\Bundle\UserBundle\Doctrine\ORM\UserRepository + Sylius\Bundle\UserBundle\Form\Type\UserEntityType + Sylius\Bundle\UserBundle\Form\Type\GroupEntityType + + + + + %sylius.model.group.class% + + + + %sylius.model.user.class% + + + + + diff --git a/src/Sylius/Bundle/UserBundle/Resources/config/services.xml b/src/Sylius/Bundle/UserBundle/Resources/config/services.xml new file mode 100644 index 0000000000..468479a412 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/config/services.xml @@ -0,0 +1,55 @@ + + + + + + + + Sylius\Bundle\UserBundle\Provider\UserProvider + Sylius\Bundle\UserBundle\EventListener\UserUpdateListener + Sylius\Bundle\UserBundle\EventListener\UserDeleteListener + Sylius\Bundle\UserBundle\EventListener\UserAwareListener + + + + + + + + + + + + + + + + sylius_backend_user_index + + + + %sylius.model.user.class% + + + + %sylius.model.group.class% + + sylius + + + + + + diff --git a/src/Sylius/Bundle/UserBundle/Resources/config/twig.xml b/src/Sylius/Bundle/UserBundle/Resources/config/twig.xml new file mode 100644 index 0000000000..ce404394b9 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/config/twig.xml @@ -0,0 +1,30 @@ + + + + + + + + Sylius\Bundle\UserBundle\Twig\UserExtension + + + + + + + + + + diff --git a/src/Sylius/Bundle/UserBundle/Resources/config/validation.xml b/src/Sylius/Bundle/UserBundle/Resources/config/validation.xml new file mode 100644 index 0000000000..206af4e9f3 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/config/validation.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Sylius/Bundle/UserBundle/Resources/meta/LICENSE b/src/Sylius/Bundle/UserBundle/Resources/meta/LICENSE new file mode 100644 index 0000000000..29227a5809 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/meta/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2011-2015 Paweł Jędrzejewski + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/src/Sylius/Bundle/UserBundle/Resources/translations/messages.en.yml b/src/Sylius/Bundle/UserBundle/Resources/translations/messages.en.yml new file mode 100644 index 0000000000..c6b4282c1f --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/translations/messages.en.yml @@ -0,0 +1,16 @@ +sylius: + form: + group: + name: Name + roles: Roles + user: + billing_address: Billing address + different_billing_address: Use different address for billing? + enabled: Enabled + first_name: First name + groups: Groups + last_name: Last name + password: Password + shipping_address: Shipping address + user_filter: + query: Search diff --git a/src/Sylius/Bundle/UserBundle/Resources/translations/validators.en.yml b/src/Sylius/Bundle/UserBundle/Resources/translations/validators.en.yml new file mode 100644 index 0000000000..8082905a1f --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Resources/translations/validators.en.yml @@ -0,0 +1,16 @@ +sylius: + group: + name: + max: Group name must not be longer than {{ limit }} characters. + min: Group name must be at least {{ limit }} characters long. + not_blank: Please enter group name. + + user: + first_name: + max: First name must not be longer than {{ limit }} characters. + min: First name must be at least {{ limit }} characters long. + not_blank: Please enter your first name. + last_name: + max: Last name must not be longer than {{ limit }} characters. + min: Last name must be at least {{ limit }} characters long. + not_blank: Please enter your last name. diff --git a/src/Sylius/Bundle/UserBundle/SyliusUserBundle.php b/src/Sylius/Bundle/UserBundle/SyliusUserBundle.php new file mode 100644 index 0000000000..f9f09e3a62 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/SyliusUserBundle.php @@ -0,0 +1,53 @@ + + */ +class SyliusUserBundle extends AbstractResourceBundle +{ + /** + * {@inheritdoc} + */ + public static function getSupportedDrivers() + { + return array( + SyliusResourceBundle::DRIVER_DOCTRINE_ORM, + ); + } + + /** + * {@inheritdoc} + */ + protected function getModelInterfaces() + { + return array( + 'Sylius\Component\User\Model\UserInterface' => 'sylius.model.user.class', + 'Sylius\Component\User\Model\UserOAuthInterface' => 'sylius.model.user_oauth.class', + 'Sylius\Component\User\Model\GroupInterface' => 'sylius.model.group.class', + ); + } + + /** + * {@inheritdoc} + */ + protected function getModelNamespace() + { + return 'Sylius\Component\User\Model'; + } +} diff --git a/src/Sylius/Bundle/UserBundle/Twig/LocaleExtension.php b/src/Sylius/Bundle/UserBundle/Twig/LocaleExtension.php new file mode 100644 index 0000000000..fefd1fa5f5 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/Twig/LocaleExtension.php @@ -0,0 +1,63 @@ + + */ +class UserExtension extends \Twig_Extension +{ + /** + * @var LocaleHelper + */ + protected $helper; + + /** + * @param LocaleHelper $helper + */ + public function __construct(LocaleHelper $helper) + { + $this->helper = $helper; + } + + /** + * {@inheritdoc} + */ + public function getFilters() + { + return array( + new \Twig_SimpleFunction('sylius_locale', array($this, 'getLocale')), + ); + } + + /** + * Get currently selected locale code. + * + * @return string + */ + public function getLocale() + { + return $this->helper->getLocale(); + } + + /** + * {@inheritdoc} + */ + public function getName() + { + return 'sylius_locale'; + } +} diff --git a/src/Sylius/Bundle/UserBundle/composer.json b/src/Sylius/Bundle/UserBundle/composer.json new file mode 100644 index 0000000000..d22d1b30f4 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/composer.json @@ -0,0 +1,52 @@ +{ + "name": "sylius/user-bundle", + "type": "symfony-bundle", + "description": "Users management for Symfony2 projects.", + "keywords": ["user", "registration", "login", "groups"], + "homepage": "http://sylius.org", + "license": "MIT", + "authors": [ + { + "name": "Paweł Jędrzejewski", + "homepage": "http://pjedrzejewski.com" + }, + { + "name": "Bartosz Siejka", + "homepage": "http://bsiejka.com" + }, + { + "name": "Sylius project", + "homepage": "http://sylius.org" + }, + { + "name": "Community contributions", + "homepage": "http://github.com/Sylius/Sylius/contributors" + } + ], + "require": { + "php": ">=5.3.3", + + "sylius/user": "0.13.*@dev", + "sylius/resource-bundle": "0.13.*@dev", + "symfony/framework-bundle": "~2.3" + }, + "require-dev": { + "phpspec/phpspec": "~2.1", + "symfony/form": "~2.3", + "twig/twig": "~1.0" + }, + "config": { + "bin-dir": "bin" + }, + "autoload": { + "psr-4": { "Sylius\\Bundle\\UserBundle\\": "" } + }, + "autoload-dev": { + "psr-4": { "Sylius\\Bundle\\UserBundle\\spec\\": "spec/" } + }, + "extra": { + "branch-alias": { + "dev-master": "0.13-dev" + } + } +} diff --git a/src/Sylius/Bundle/UserBundle/phpspec.yml b/src/Sylius/Bundle/UserBundle/phpspec.yml new file mode 100644 index 0000000000..c4e58348d7 --- /dev/null +++ b/src/Sylius/Bundle/UserBundle/phpspec.yml @@ -0,0 +1,5 @@ +suites: + main: + namespace: Sylius\Bundle\UserBundle + psr4_prefix: Sylius\Bundle\UserBundle + src_path: . diff --git a/src/Sylius/Bundle/CoreBundle/spec/EventListener/UserAwareListenerSpec.php b/src/Sylius/Bundle/UserBundle/spec/EventListener/UserAwareListenerSpec.php similarity index 92% rename from src/Sylius/Bundle/CoreBundle/spec/EventListener/UserAwareListenerSpec.php rename to src/Sylius/Bundle/UserBundle/spec/EventListener/UserAwareListenerSpec.php index db091206ef..e98361694e 100644 --- a/src/Sylius/Bundle/CoreBundle/spec/EventListener/UserAwareListenerSpec.php +++ b/src/Sylius/Bundle/UserBundle/spec/EventListener/UserAwareListenerSpec.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace spec\Sylius\Bundle\CoreBundle\EventListener; +namespace spec\Sylius\Bundle\UserBundle\EventListener; use PhpSpec\ObjectBehavior; use Prophecy\Argument; -use Sylius\Component\Core\Model\UserAwareInterface; +use Sylius\Component\User\Model\UserAwareInterface; use Sylius\Component\Core\Model\UserInterface; use Symfony\Component\EventDispatcher\GenericEvent; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; @@ -23,7 +23,7 @@ class UserAwareListenerSpec extends ObjectBehavior { function it_is_initializable() { - $this->shouldHaveType('Sylius\Bundle\CoreBundle\EventListener\UserAwareListener'); + $this->shouldHaveType('Sylius\Bundle\UserBundle\EventListener\UserAwareListener'); } function let(SecurityContextInterface $securityContext) diff --git a/src/Sylius/Bundle/CoreBundle/spec/EventListener/UserDeleteListenerSpec.php b/src/Sylius/Bundle/UserBundle/spec/EventListener/UserDeleteListenerSpec.php similarity index 95% rename from src/Sylius/Bundle/CoreBundle/spec/EventListener/UserDeleteListenerSpec.php rename to src/Sylius/Bundle/UserBundle/spec/EventListener/UserDeleteListenerSpec.php index 0547b2f35c..d8f16a2851 100644 --- a/src/Sylius/Bundle/CoreBundle/spec/EventListener/UserDeleteListenerSpec.php +++ b/src/Sylius/Bundle/UserBundle/spec/EventListener/UserDeleteListenerSpec.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace spec\Sylius\Bundle\CoreBundle\EventListener; +namespace spec\Sylius\Bundle\UserBundle\EventListener; use PhpSpec\ObjectBehavior; use FOS\UserBundle\Model\UserManagerInterface; @@ -36,7 +36,7 @@ class UserDeleteListenerSpec extends ObjectBehavior function it_is_initializable() { - $this->shouldHaveType('Sylius\Bundle\CoreBundle\EventListener\UserDeleteListener'); + $this->shouldHaveType('Sylius\Bundle\UserBundle\EventListener\UserDeleteListener'); } function it_delete_user($event, $userInterface, $flashBag, $securityContext, TokenInterface $tokenInterface) diff --git a/src/Sylius/Bundle/CoreBundle/spec/OAuth/UserProviderSpec.php b/src/Sylius/Bundle/UserBundle/spec/OAuth/UserProviderSpec.php similarity index 97% rename from src/Sylius/Bundle/CoreBundle/spec/OAuth/UserProviderSpec.php rename to src/Sylius/Bundle/UserBundle/spec/OAuth/UserProviderSpec.php index 9cf4c02b71..f6dc2c2239 100644 --- a/src/Sylius/Bundle/CoreBundle/spec/OAuth/UserProviderSpec.php +++ b/src/Sylius/Bundle/UserBundle/spec/OAuth/UserProviderSpec.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace spec\Sylius\Bundle\CoreBundle\OAuth; +namespace spec\Sylius\Bundle\UserBundle\OAuth; use FOS\UserBundle\Model\UserManagerInterface; use HWI\Bundle\OAuthBundle\OAuth\ResourceOwnerInterface; @@ -28,7 +28,7 @@ class UserProviderSpec extends ObjectBehavior function it_is_initializable() { - $this->shouldHaveType('Sylius\Bundle\CoreBundle\OAuth\UserProvider'); + $this->shouldHaveType('Sylius\Bundle\UserBundle\OAuth\UserProvider'); } function it_implements_Hwi_oauth_aware_user_provider_interface() diff --git a/src/Sylius/Bundle/WebBundle/Controller/Frontend/Account/OrderController.php b/src/Sylius/Bundle/WebBundle/Controller/Frontend/Account/OrderController.php index 6f627d7241..ce9724197a 100644 --- a/src/Sylius/Bundle/WebBundle/Controller/Frontend/Account/OrderController.php +++ b/src/Sylius/Bundle/WebBundle/Controller/Frontend/Account/OrderController.php @@ -34,7 +34,7 @@ class OrderController extends FOSRestController public function indexAction() { $orders = $this->getOrderRepository()->findBy(array('user' => $this->getUser()), array('updatedAt' => 'desc')); - + $view = $this ->view() ->setTemplate('SyliusWebBundle:Frontend/Account:Order/index.html.twig') diff --git a/src/Sylius/Component/Core/Model/Order.php b/src/Sylius/Component/Core/Model/Order.php index 77300c1cb6..a4a26e0e13 100644 --- a/src/Sylius/Component/Core/Model/Order.php +++ b/src/Sylius/Component/Core/Model/Order.php @@ -16,7 +16,7 @@ use Doctrine\Common\Collections\Collection; use Sylius\Component\Cart\Model\Cart; use Sylius\Component\Channel\Model\ChannelInterface as BaseChannelInterface; use Sylius\Component\Order\Model\OrderInterface; -use Sylius\Component\User\Model\UserInterface as UserComponentInterface; +use Sylius\Component\User\Model\UserInterface as BaseUserInterface; use Sylius\Component\Payment\Model\PaymentInterface as BasePaymentInterface; use Sylius\Component\Promotion\Model\CouponInterface as BaseCouponInterface; use Sylius\Component\Promotion\Model\PromotionInterface as BasePromotionInterface; @@ -32,7 +32,7 @@ class Order extends Cart implements OrderInterface /** * User. * - * @var UserComponentInterface + * @var BaseUserInterface */ protected $user; @@ -145,7 +145,7 @@ class Order extends Cart implements OrderInterface /** * {@inheritdoc} */ - public function setUser(UserComponentInterface $user = null) + public function setUser(BaseUserInterface $user) { $this->user = $user; diff --git a/src/Sylius/Component/Core/Model/User.php b/src/Sylius/Component/Core/Model/User.php index 6ccdff6d37..1a8068703f 100644 --- a/src/Sylius/Component/Core/Model/User.php +++ b/src/Sylius/Component/Core/Model/User.php @@ -13,14 +13,14 @@ namespace Sylius\Component\Core\Model; use Doctrine\Common\Collections\ArrayCollection; use Sylius\Component\Rbac\Model\RoleInterface; -use Sylius\Component\User\Model\User as UserComponent; +use Sylius\Component\User\Model\User as BaseUser; /** * User model. * * @author Paweł Jędrzejewski */ -class User extends UserComponent implements UserInterface +class User extends BaseUser implements UserInterface { protected $currency; protected $orders; diff --git a/src/Sylius/Component/Core/Model/UserInterface.php b/src/Sylius/Component/Core/Model/UserInterface.php index 93e6155de3..0de23710d0 100644 --- a/src/Sylius/Component/Core/Model/UserInterface.php +++ b/src/Sylius/Component/Core/Model/UserInterface.php @@ -14,14 +14,14 @@ namespace Sylius\Component\Core\Model; use Doctrine\Common\Collections\Collection; use Sylius\Component\Rbac\Model\IdentityInterface; use Sylius\Component\Resource\Model\TimestampableInterface; -use Sylius\Component\User\Model\UserInterface as UserComponentInterface; +use Sylius\Component\User\Model\UserInterface as BaseUserInterface; /** * User interface. * * @author Paweł Jędrzejewski */ -interface UserInterface extends UserComponentInterface, IdentityInterface, TimestampableInterface +interface UserInterface extends BaseUserInterface, IdentityInterface, TimestampableInterface { /** * Get currency. diff --git a/src/Sylius/Component/Core/Pricing/GroupBasedCalculator.php b/src/Sylius/Component/Core/Pricing/GroupBasedCalculator.php index a6eb0ed973..cedff3f227 100644 --- a/src/Sylius/Component/Core/Pricing/GroupBasedCalculator.php +++ b/src/Sylius/Component/Core/Pricing/GroupBasedCalculator.php @@ -21,7 +21,7 @@ use Sylius\Component\Pricing\Calculator\CalculatorInterface; class GroupBasedCalculator extends AbstractCalculator implements CalculatorInterface { protected $parameterName = 'groups'; - protected $className = 'Sylius\Component\Core\Model\GroupInterface'; + protected $className = 'Sylius\Component\User\Model\GroupInterface'; /** * {@inheritdoc} diff --git a/src/Sylius/Component/Core/Promotion/Checker/PromotionEligibilityChecker.php b/src/Sylius/Component/Core/Promotion/Checker/PromotionEligibilityChecker.php index 1c2f552f2c..ad6b038ff5 100644 --- a/src/Sylius/Component/Core/Promotion/Checker/PromotionEligibilityChecker.php +++ b/src/Sylius/Component/Core/Promotion/Checker/PromotionEligibilityChecker.php @@ -12,7 +12,7 @@ namespace Sylius\Component\Core\Promotion\Checker; use Sylius\Component\Core\Model\CouponInterface; -use Sylius\Component\Core\Model\UserAwareInterface; +use Sylius\Component\User\Model\UserAwareInterface; use Sylius\Component\Core\Model\UserInterface; use Sylius\Component\Core\Repository\OrderRepositoryInterface; use Sylius\Component\Promotion\Checker\PromotionEligibilityChecker as BasePromotionEligibilityChecker; diff --git a/src/Sylius/Component/Core/spec/Model/UserSpec.php b/src/Sylius/Component/Core/spec/Model/UserSpec.php index 3335ec803f..6953f82633 100644 --- a/src/Sylius/Component/Core/spec/Model/UserSpec.php +++ b/src/Sylius/Component/Core/spec/Model/UserSpec.php @@ -27,7 +27,7 @@ class UserSpec extends ObjectBehavior function it_implements_user_component_interface() { - $this->shouldImplement('Sylius\Component\User\Model\UserInterface'); + $this->shouldImplement('Sylius\Component\Core\Model\UserInterface'); } function it_has_no_shipping_address_by_default() diff --git a/src/Sylius/Component/Core/spec/Pricing/GroupBasedCalculatorSpec.php b/src/Sylius/Component/Core/spec/Pricing/GroupBasedCalculatorSpec.php index 5fdc4ea96a..b2c4b12f74 100644 --- a/src/Sylius/Component/Core/spec/Pricing/GroupBasedCalculatorSpec.php +++ b/src/Sylius/Component/Core/spec/Pricing/GroupBasedCalculatorSpec.php @@ -12,7 +12,7 @@ namespace spec\Sylius\Component\Core\Pricing; use PhpSpec\ObjectBehavior; -use Sylius\Component\Core\Model\GroupInterface; +use Sylius\Component\User\Model\GroupInterface; use Sylius\Component\Pricing\Model\PriceableInterface; ; diff --git a/src/Sylius/Component/User/CHANGELOG.md b/src/Sylius/Component/User/CHANGELOG.md index f5a1d8c76d..723af1b6eb 100644 --- a/src/Sylius/Component/User/CHANGELOG.md +++ b/src/Sylius/Component/User/CHANGELOG.md @@ -1,6 +1,6 @@ CHANGELOG ========= -### v0.11.0 +### v0.13.0 * Initial dev release. diff --git a/src/Sylius/Component/Core/Model/Group.php b/src/Sylius/Component/User/Model/Group.php similarity index 92% rename from src/Sylius/Component/Core/Model/Group.php rename to src/Sylius/Component/User/Model/Group.php index 4f7e7d7e51..622ddb8084 100644 --- a/src/Sylius/Component/Core/Model/Group.php +++ b/src/Sylius/Component/User/Model/Group.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Component\Core\Model; +namespace Sylius\Component\User\Model; use FOS\UserBundle\Model\Group as BaseGroup; diff --git a/src/Sylius/Component/Core/Model/GroupInterface.php b/src/Sylius/Component/User/Model/GroupInterface.php similarity index 91% rename from src/Sylius/Component/Core/Model/GroupInterface.php rename to src/Sylius/Component/User/Model/GroupInterface.php index 3b4450adcc..b6b317e21d 100644 --- a/src/Sylius/Component/Core/Model/GroupInterface.php +++ b/src/Sylius/Component/User/Model/GroupInterface.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Sylius\Component\Core\Model; +namespace Sylius\Component\User\Model; use FOS\UserBundle\Model\GroupInterface as BaseGroupInterface; diff --git a/src/Sylius/Component/User/Model/User.php b/src/Sylius/Component/User/Model/User.php index 485a99719c..d1baf93e7b 100644 --- a/src/Sylius/Component/User/Model/User.php +++ b/src/Sylius/Component/User/Model/User.php @@ -30,10 +30,10 @@ class User extends BaseUser implements UserInterface public function __construct() { + parent::__construct(); + $this->createdAt = new \DateTime(); $this->oauthAccounts = new ArrayCollection(); - - parent::__construct(); } public function getFullName() @@ -193,4 +193,12 @@ class User extends BaseUser implements UserInterface return $this; } + + /** + * {@inheritdoc} + */ + public function isDeleted() + { + return ((null !== $this->deletedAt) && (new \DateTime() >= $this->deletedAt)); + } } \ No newline at end of file diff --git a/src/Sylius/Component/User/Model/UserInterface.php b/src/Sylius/Component/User/Model/UserInterface.php index 6d34d4ab6d..019d141876 100644 --- a/src/Sylius/Component/User/Model/UserInterface.php +++ b/src/Sylius/Component/User/Model/UserInterface.php @@ -74,4 +74,11 @@ interface UserInterface extends BaseUserInterface, TimestampableInterface * @return self */ public function addOAuthAccount(UserOAuthInterface $oauth); + + /** + * Check whether user is deleted. + * + * @return bool + */ + public function isDeleted(); } diff --git a/src/Sylius/Component/User/README.md b/src/Sylius/Component/User/README.md index e4f7ce138e..1e4439bc8e 100644 --- a/src/Sylius/Component/User/README.md +++ b/src/Sylius/Component/User/README.md @@ -1,4 +1,4 @@ -User Component [![Build status...](https://secure.travis-ci.org/Sylius/Locale.png?branch=master)](http://travis-ci.org/Sylius/Locale) +User Component [![Build status...](https://secure.travis-ci.org/Sylius/User.png?branch=master)](http://travis-ci.org/Sylius/User) ================ Managing users in PHP applications. @@ -38,10 +38,10 @@ If you find a bug, please refer to the [Reporting a Bug](http://docs.sylius.org/ MIT License ----------- -License can be found [here](https://github.com/Sylius/Locale/blob/master/LICENSE). +License can be found [here](https://github.com/Sylius/User/blob/master/LICENSE). Authors ------- The component was originally created by [Paweł Jędrzejewski](http://pjedrzejewski.com). -See the list of [contributors](https://github.com/Sylius/Locale/contributors). +See the list of [contributors](https://github.com/Sylius/User/contributors). diff --git a/src/Sylius/Component/User/composer.json b/src/Sylius/Component/User/composer.json index 02242820c9..eee8e5286a 100644 --- a/src/Sylius/Component/User/composer.json +++ b/src/Sylius/Component/User/composer.json @@ -1,8 +1,8 @@ { "name": "sylius/user", "type": "library", - "description": "Locale handling for PHP applications.", - "keywords": ["language", "localization", "locale", "i18n", "internationalization"], + "description": "User handling for PHP applications.", + "keywords": ["user", "registration", "login", "groups"], "homepage": "http://sylius.org", "license": "MIT", "authors": [ diff --git a/src/Sylius/Component/Core/spec/Model/GroupSpec.php b/src/Sylius/Component/User/spec/Model/GroupSpec.php similarity index 77% rename from src/Sylius/Component/Core/spec/Model/GroupSpec.php rename to src/Sylius/Component/User/spec/Model/GroupSpec.php index 51ab7b1f75..520741f404 100644 --- a/src/Sylius/Component/Core/spec/Model/GroupSpec.php +++ b/src/Sylius/Component/User/spec/Model/GroupSpec.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace spec\Sylius\Component\Core\Model; +namespace spec\Sylius\Component\User\Model; use PhpSpec\ObjectBehavior; @@ -20,12 +20,12 @@ class GroupSpec extends ObjectBehavior { function it_is_initializable() { - $this->shouldHaveType('Sylius\Component\Core\Model\Group'); + $this->shouldHaveType('Sylius\Component\User\Model\Group'); } function it_implements_Sylius_group_interface() { - $this->shouldImplement('Sylius\Component\Core\Model\GroupInterface'); + $this->shouldImplement('Sylius\Component\User\Model\GroupInterface'); } function it_extends_FOS_group_model() diff --git a/src/Sylius/Component/User/spec/Model/UserSpec.php b/src/Sylius/Component/User/spec/Model/UserSpec.php index 1856cc28fb..b611877824 100644 --- a/src/Sylius/Component/User/spec/Model/UserSpec.php +++ b/src/Sylius/Component/User/spec/Model/UserSpec.php @@ -14,8 +14,9 @@ namespace spec\Sylius\Component\User\Model; use PhpSpec\ObjectBehavior; /** - + * * @author Alexandre Bacco + * @author Bartosz Siejka */ class UserSpec extends ObjectBehavior { @@ -28,4 +29,47 @@ class UserSpec extends ObjectBehavior { $this->shouldImplement('FOS\UserBundle\Model\UserInterface'); } + + function it_sets_user_first_name() + { + $this->setFirstName('Edward'); + + $this->getFirstName()->shouldReturn('Edward'); + } + + function it_sets_user_last_name() + { + $this->setLastName('Thatch'); + + $this->getLastName()->shouldReturn('Thatch'); + } + + function it_can_get_full_name() + { + $this->setFirstName('Edward'); + $this->setLastName('Kenway'); + + $this->getFullName()->shouldReturn('Edward Kenway'); + } + + function it_should_return_true_if_user_is_deleted() + { + $deletedAt = new \DateTime('yesterday'); + $this->setDeletedAt($deletedAt); + + $this->shouldBeDeleted(); + } + + function it_should_return_false_if_user_is_not_deleted() + { + $this->shouldNotBeDeleted(); + } + + function it_should_return_false_if_user_deleted_time_is_future_date() + { + $deletedAt = new \DateTime('tomorrow'); + $this->setDeletedAt($deletedAt); + + $this->shouldNotBeDeleted(); + } }