La idea que tienes de verificar por una propiedad que te indique si esta con sesion en el sistema te sirve, solo agregale ademas otro campo para mantener un timestamp que se este actualizando con un tiempo pertinente para saber si el usuario esta conectado con su cuenta, de esa forma cuando se haga un nuevo login puedes controlar si están accediendo doble.
Por otro lado vas a necesitar usar un manejador de eventos para que cuando el usuario intente hacer login puedas verifiques las condiciones que requieras. Esto lo puedes hacer creando una implementación de la interfaz
AuthenticationSuccessHandlerInterface https://github.com/symfony/symfony/b...rInterface.php . En el mismo lugar donde esta la interfaz puedes ver ejemplos para que te orientes a la hora de implementarla, ya que la tengas implementada, la tienes que agregarla como servicio
http://symfony.com/doc/current/book/...container.html y posterior a eso le indicas al componente de seguridad que va a utilizar tu implementación agregando la directiva
success_handler al archivo security.yml; ejemplo
Código yml:
Ver originalform_login:
check_path: /admin/login_check
login_path: /admin/login
always_use_default_target_path: true
default_target_path: /admin
success_handler: ultra_login_success_handler
En el ejemplo la cadena
ultra_login_success_handler es el id que le di al handler cuando lo agregue como servicio.