symfony1 doctrine symfony-1.4 doctrine-1.2 sfdoctrineguard

symfony1 - Symfony sfDoctrineGuardPlugin consulta de inicio de sesión personalizada



symfony-1.4 doctrine-1.2 (3)

Uso symfony sfDoctrineGuardPlugin para administrar la autenticación tanto para los usuarios frontend como para los usuarios de back-end. Está bien, excepto que no quiero que los usuarios frontend puedan iniciar sesión en la aplicación de back-end. Puedo configurar credenciales, pero las credenciales se verifican después de que un usuario se autentica. Lo que quiero es tener sigin en forma para nunca validar para un usuario, que no está en un grupo de back-end. ¿Cómo puedo hacer esto?



Creo que encontré una mejor solución. El plugin sfDoctrineGuard tiene su propio validador de publicaciones que busca una opción de recuperación para el usuario.

//app.yml all: sf_guard_plugin: retrieve_by_username_callable: sfGuardUser::getForBackend //sfGuardUser.class.php public static function getForBackend($username) { $query = Doctrine::getTable(''sfGuardUser'')->createQuery(''u'') ->leftJoin(''u.Groups g'') ->leftJoin(''g.Permissions p'') ->where(''u.username = ? OR u.email_address = ?'', array($username, $username)) ->addWhere(''u.is_active = ?'', true) ->addWhere(''p.name = ?'', ''backend''); return $query->fetchOne(); }


Creo que solo debes agregar:

storage: class: sfSessionStorage param: session_name: sf_backend

al final de su backend/config/factories.yml Por defecto, Symfony comparte cookies de sesión, con esta solución, Symfony separa estas cookies.