UserAdmin.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /*
  3. * This file is part of the Sonata package.
  4. *
  5. * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Sonata\UserBundle\Admin\Entity;
  11. use Sonata\AdminBundle\Admin\Admin;
  12. use Sonata\AdminBundle\Form\FormMapper;
  13. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  14. use Sonata\AdminBundle\Datagrid\ListMapper;
  15. use Sonata\AdminBundle\Route\RouteCollection;
  16. use FOS\UserBundle\Model\UserManagerInterface;
  17. class UserAdmin extends Admin
  18. {
  19. protected $list = array(
  20. 'username' => array('identifier' => true),
  21. 'email',
  22. 'enabled',
  23. 'locked',
  24. 'createdAt',
  25. );
  26. protected $formGroups = array(
  27. 'General' => array(
  28. 'fields' => array('username', 'email', 'plainPassword')
  29. ),
  30. 'Groups' => array(
  31. 'fields' => array('groups')
  32. ),
  33. 'Management' => array(
  34. 'fields' => array('roles', 'locked', 'expired', 'enabled', 'credentialsExpired', 'credentialsExpireAt')
  35. )
  36. );
  37. protected $formOptions = array(
  38. 'validation_groups' => 'admin'
  39. );
  40. protected $filter = array(
  41. 'username',
  42. 'locked',
  43. 'email',
  44. 'id',
  45. );
  46. public function configureFormFields(FormMapper $formMapper)
  47. {
  48. $formMapper
  49. ->add('username')
  50. ->add('email')
  51. ->add('groups', array('required' => false))
  52. ->add('locked', array('required' => false))
  53. ->add('expired', array('required' => false))
  54. ->add('enabled', array('required' => false))
  55. ->add('credentialsExpired', array('required' => false))
  56. ;
  57. $formMapper->addType('roles', 'sonata_security_roles', array(
  58. 'multiple' => true,
  59. // 'expanded' => true,
  60. ), array(
  61. 'type' => 'choice'
  62. ));
  63. }
  64. public function preUpdate($user)
  65. {
  66. $this->getUserManager()->updateCanonicalFields($user);
  67. $this->getUserManager()->updatePassword($user);
  68. }
  69. public function setUserManager(UserManagerInterface $userManager)
  70. {
  71. $this->userManager = $userManager;
  72. }
  73. public function getUserManager()
  74. {
  75. return $this->userManager;
  76. }
  77. }