В Symfony sfGuard, если кто-то не является существующим пользователем, он вообще не может войти в систему.Это означает, что вы должны разделить их на логин и регистрацию:
- Если пользователь, войдите в систему.
- Если нет, зарегистрируйтесь и выберите отдел.
Однако, если вы хотите, чтобы при первом входе пользователя в систему происходило нестандартное поведение, вы можете создать для него флаг самостоятельно, возможно, создав соответствующую таблицу профилей для sfGuardUser.Модель sfGuardUser не имеет настраиваемых полей, которые вы могли бы использовать для чего-то подобного, но ... у нее есть поведение "Timestampable", поэтому вы могли бы сделать (псевдокод):
if (created_at == updated_at) {
// go to select department and update updated_at
} else {
// login as normal
}
Я считаю,эти два поля устанавливаются равными при создании нового sfGuardUser.
надеюсь, что это поможет.