Procházet zdrojové kódy

[latest-fosub] Generate apiToken on registration

Igor Wiedler před 12 roky
rodič
revize
2a95c51dbf

+ 3 - 0
app/config/config.yml

@@ -68,6 +68,9 @@ fos_user:
     from_email:
         address:        %mailer_from_email%
         sender_name:    %mailer_from_name%
+    registration:
+        form:
+            handler: packagist.form.handler.registration
 
 nelmio_solarium:
     adapter: ~

+ 27 - 0
src/Packagist/WebBundle/Form/Handler/RegistrationFormHandler.php

@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of Packagist.
+ *
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
+ *     Nils Adermann <naderman@naderman.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Packagist\WebBundle\Form\Handler;
+
+use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
+use FOS\UserBundle\Model\UserInterface;
+
+class RegistrationFormHandler extends BaseHandler
+{
+    protected function onSuccess(UserInterface $user, $confirmation)
+    {
+        $apiToken = substr($this->tokenGenerator->generateToken(), 0, 20);
+        $user->setApiToken($apiToken);
+
+        parent::onSuccess($user, $confirmation);
+    }
+}

+ 11 - 0
src/Packagist/WebBundle/Resources/config/services.yml

@@ -24,6 +24,17 @@ services:
         class: Packagist\WebBundle\Package\Updater
         arguments: [@doctrine]
 
+    packagist.form.handler.registration:
+        class: Packagist\WebBundle\Form\Handler\RegistrationFormHandler
+        arguments:
+            - @fos_user.registration.form
+            - @request
+            - @fos_user.user_manager
+            - @fos_user.mailer
+            - @fos_user.util.token_generator
+        scope: request
+        public: false
+
     fos_user.util.user_manipulator:
         class: Packagist\WebBundle\Util\UserManipulator
         arguments: [@fos_user.user_manager, @fos_user.util.token_generator]