Browse Source

Merge pull request #2 from qpleple/preupdate-hook

added preupdate hook for user admin
Thomas 14 years ago
parent
commit
82448f7c47
2 changed files with 21 additions and 0 deletions
  1. 18 0
      Admin/Entity/UserAdmin.php
  2. 3 0
      Resources/config/admin_orm.xml

+ 18 - 0
Admin/Entity/UserAdmin.php

@@ -17,6 +17,8 @@ use Sonata\AdminBundle\Datagrid\DatagridMapper;
 use Sonata\AdminBundle\Datagrid\ListMapper;
 use Sonata\AdminBundle\Route\RouteCollection;
 
+use FOS\UserBundle\Model\UserManagerInterface;
+
 class UserAdmin extends Admin
 {
 
@@ -70,4 +72,20 @@ class UserAdmin extends Admin
             'type' => 'choice'
         ));
     }
+    
+    public function preUpdate($user)
+    {
+        $this->getUserManager()->updateCanonicalFields($user);
+        $this->getUserManager()->updatePassword($user);
+    }
+    
+    public function setUserManager(UserManagerInterface $userManager)
+    {
+        $this->userManager = $userManager;
+    }
+    
+    public function getUserManager()
+    {
+        return $this->userManager;
+    }
 }

+ 3 - 0
Resources/config/admin_orm.xml

@@ -21,6 +21,9 @@
             <argument />
             <argument>%sonata.user.admin.user.entity%</argument>
             <argument />
+            <call method="setUserManager">
+                <argument type="service" id="fos_user.user_manager" />
+            </call>
         </service>
 
         <service id="sonata.user.admin.group" class="%sonata.user.admin.group.class%">