Mostrar ROLES en SonataAdminBundle para FOSUserBundle

Cuando administramos nuestras entidades con SonataAdminBundle, podemos combinarlo con nuestra implementación de FOSUserBundle. De esta forma


class UsuarioAdmin extends Admin
{

 protected function configureFormFields(FormMapper $formMapper)
 {
 $formMapper
 ->with('Info')
 ->add('nombres')
 ->add('apellidos')
 ->end()
 ->with('Acceso')
 ->add('username', null, array('label' => 'USERNAME') )
 ->add('password')
 ->add('email')
 ->end()
 ->with('Administración')
 ->add('roles', 'sonata_security_roles', array( 'multiple'=>true))
 ->end()
 ;
}
//.....
}

Cuando queremos ver los roles no da un error. Porque no conoce esta opcion ‘sonata_security_roles’ . Para salvar esto tenemos que agregar en /app/AppKernel.php , esto :

new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'),

Hay que notar que le estamos pasando un parametro, pues estamos usando FOSUserBundle, como mencionamos en el título de este post.

Al probar nuevamente, tenemos ahora otro tipo de error, algo de una ruta no encontrada ….
Solo debemos agregar esto en el routing.yml :

sonata_user_admin_security_logout:
  pattern: /logout
  defaults: { _controller: FOSUserBundle:Security:logout}

Con eso deberemos poder al entrar a la edicion de algun usuario un SELECT MULTIPLE que nos pintará los roles que tiene asignados ese usuario, y tambien podremos asignar otro roles y quitar alguno presente.

Esta entrada fue publicada en General y etiquetada , , , . Guarda el enlace permanente.

Deja un comentario