Instalando sfDoctrineGuardPlugin

Una de las características más habituales de cualquier aplicación es la autentificación de usuarios para asegurar diferentes partes de la aplicación. El plugin sfDoctrineGuardPlugin nos facilita la implementación de esta tarea. Para instalar y habilitar este plugin tenemos que seguir estos sencillos pasos:

  • Lo primero que tenemos que hacer es instalar el plugin en nuestro proyecto. Podemos ejecutar la tarea de instalación:
    symfony plugin:install sfDoctrineGuardPlugin
    para lo que tenemos que tener instalado PEAR, pero como últimamente PEAR y yo no nos hablamos, pues vamos a descargarnos el paquete y lo descomprimimos en la carpeta plugins de nuestro proyecto (lo renombramos quitándole la numeración de la versión: sfDoctrineGuarPlugin).
  • Ahora activamos el plugin en el archivo config/ProjectConfiguration.class.php de nuestro proyecto:
    class ProjectConfiguration extends sfProjectConfiguration
    {
    public function setup()
    {
    $this->enablePlugins(array(
    'sfDoctrinePlugin',
    'sfDoctrineGuardPlugin',
    '...'
    ));
    }
    }
    
  • Reconstruimos el modelo y actualizamos la base de datos:
    symfony doctrine:build --all

Ahora ya tenemos el plugin instalado. Lo siguiente que vamos a hacer es cargar los datos de prueba (que consisten en un usuario administrador):

  • Copiamos el fichero plugins/sfDoctrineGuardPlugin/data/fixtures/fixtures.yml.sample en data/fixtures/sfGuard.yml y cargamos los datos:
    symfony doctrine:data-load

Bien, ya sólo nos queda habilitar los módulos que vayamos a utilizar y configurarlos correctamente.

  • En el frontend, abrimos el archivo settings.yml y añadimos el módulo sfGuardAuth y lo configuramos:
    all:
    .settings:
    enabled_modules:      [default, sfGuardAuth]
    login_module:           sfGuardAuth
    login_action:           signin
    secure_module:          sfGuardAuth
    secure_action:          secure
    
  • Editamos la clase myUser.class.php para cambiar la clase de la que hereda:
    class myUser extends sfGuardSecurityUser
    {
    }
    
  • Opcionalmente podemos cambiar el archivo routing.yml añadiendo la siguiente configuración al comienzo del archivo:
    sf_guard_signin:
    url:   /login
    param: { module: sfGuardAuth, action: signin }
    
    sf_guard_signout:
    url:   /logout
    param: { module: sfGuardAuth, action: signout }
    
    sf_guard_password:
    url:   /request_password
    param: { module: sfGuardAuth, action: password }
    
  • En el archivo security.yml podemos asegurar los módulos que queramos o la aplicación completa:
    default:
    is_secure: true
    

Y ya está!!! Ahora si accedemos a cualquier módulo de la aplicación y no estamos autentificados nos pedirá el usuario y el password:
login

Para el backend podemos habilitar los módulos sfGuardGroup, sfGuardPermission, sfGuardUser que nos permitirán manejar usuarios, grupos y permisos.

Categoría: Programación  Etiquetas:
Puedes seguir los comentarios de esta entrada a través del feed RSS 2.0. Puedes dejar un comentario, o un trackback hacia tu propio sitio web.
Una respuesta
  1. Agustin dice:

    Como hago para me que muestre automaticamente el formulario de logueo?

Deja un comentario

XHTML: Puedes usar los siguientes tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Better Tag Cloud