123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
- /*
- * This file is part of the Sonata package.
- *
- * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Sonata\UserBundle\Admin\Model;
- use Sonata\AdminBundle\Admin\Admin;
- use Sonata\AdminBundle\Form\FormMapper;
- use Sonata\AdminBundle\Datagrid\DatagridMapper;
- use Sonata\AdminBundle\Datagrid\ListMapper;
- use Sonata\AdminBundle\Show\ShowMapper;
- use FOS\UserBundle\Model\UserManagerInterface;
- class UserAdmin extends Admin
- {
- protected $formOptions = array(
- 'validation_groups' => 'Profile'
- );
- /**
- * {@inheritdoc}
- */
- protected function configureListFields(ListMapper $listMapper)
- {
- $listMapper
- ->addIdentifier('username')
- ->add('email')
- ->add('groups')
- ->add('enabled')
- ->add('locked')
- ->add('createdAt')
- ;
- if ($this->isGranted('ROLE_ALLOWED_TO_SWITCH')) {
- $listMapper
- ->add('impersonating', 'string', array('template' => 'SonataUserBundle:Admin:Field/impersonating.html.twig'))
- ;
- }
- }
- /**
- * {@inheritdoc}
- */
- protected function configureDatagridFilters(DatagridMapper $filterMapper)
- {
- $filterMapper
- ->add('id')
- ->add('username')
- ->add('locked')
- ->add('email')
- ->add('groups')
- ;
- }
- /**
- * {@inheritdoc}
- */
- protected function configureShowFields(ShowMapper $showMapper)
- {
- $showMapper
- ->with('General')
- ->add('username')
- ->add('email')
- ->end()
- ->with('Groups')
- ->add('groups')
- ->end()
- ->with('Profile')
- ->add('dateOfBirth', 'date')
- ->add('firstname')
- ->add('lastname')
- ->add('website')
- ->add('biography')
- ->add('gender')
- ->add('locale')
- ->add('timezone')
- ->add('phone')
- ->end()
- ->with('Social')
- ->add('facebookUid')
- ->add('facebookName')
- ->add('twitterUid')
- ->add('twitterName')
- ->add('gplusUid')
- ->add('gplusName')
- ->end()
- ->with('Security')
- ->add('token')
- ->add('twoStepVerificationCode')
- ->end();
- ;
- }
- /**
- * {@inheritdoc}
- */
- protected function configureFormFields(FormMapper $formMapper)
- {
- $formMapper
- ->with('General')
- ->add('username')
- ->add('email')
- ->add('plainPassword', 'text', array('required' => false))
- ->end()
- ->with('Groups')
- ->add('groups', 'sonata_type_model', array('required' => false))
- ->end()
- ->with('Profile')
- ->add('dateOfBirth', 'date', array('required' => false))
- ->add('firstname', null, array('required' => false))
- ->add('lastname', null, array('required' => false))
- ->add('website', 'url', array('required' => false))
- ->add('biography', 'text', array('required' => false))
- ->add('gender', null, array('required' => false))
- ->add('locale', null, array('required' => false))
- ->add('timezone', null, array('required' => false))
- ->add('phone', null, array('required' => false))
- ->end()
- ->with('Social')
- ->add('facebookUid', null, array('required' => false))
- ->add('facebookName', null, array('required' => false))
- ->add('twitterUid', null, array('required' => false))
- ->add('twitterName', null, array('required' => false))
- ->add('gplusUid', null, array('required' => false))
- ->add('gplusName', null, array('required' => false))
- ->end()
- ;
- if (!$this->getSubject()->hasRole('ROLE_SUPER_ADMIN')) {
- $formMapper->with('Management')
- ->add('roles_user', 'sonata_security_roles', array(
- 'expanded' => true,
- 'multiple' => true,
- 'required' => false
- ))
- ->add('locked', null, array('required' => false))
- ->add('expired', null, array('required' => false))
- ->add('enabled', null, array('required' => false))
- ->add('credentialsExpired', null, array('required' => false))
- ->end();
- }
- $formMapper
- ->with('Security')
- ->add('token', null, array('required' => false))
- ->add('twoStepVerificationCode', null, array('required' => false))
- ->end();
- }
- /**
- * {@inheritdoc}
- */
- public function preUpdate($user)
- {
- $this->getUserManager()->updateCanonicalFields($user);
- $this->getUserManager()->updatePassword($user);
- }
- /**
- * @param UserManagerInterface $userManager
- */
- public function setUserManager(UserManagerInterface $userManager)
- {
- $this->userManager = $userManager;
- }
- /**
- * @return UserManagerInterface
- */
- public function getUserManager()
- {
- return $this->userManager;
- }
- }
|