Как я могу проверить, если это первый вход в систему sfguarduser в Symfony? - PullRequest
1 голос
/ 15 июня 2011

Я хочу, чтобы кто-то ввел свои данные для входа, а затем действие, чтобы проверить, являются ли они существующим пользователем.Если нет, то я хочу, чтобы им пришлось выбрать свой отдел из раскрывающегося списка, в противном случае действуйте как обычно.

Я не знаю, где обрабатывается вход, хотя и проверяют, являются ли они существующим пользователем.Кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 15 июня 2011

В Symfony sfGuard, если кто-то не является существующим пользователем, он вообще не может войти в систему.Это означает, что вы должны разделить их на логин и регистрацию:

  • Если пользователь, войдите в систему.
  • Если нет, зарегистрируйтесь и выберите отдел.

Однако, если вы хотите, чтобы при первом входе пользователя в систему происходило нестандартное поведение, вы можете создать для него флаг самостоятельно, возможно, создав соответствующую таблицу профилей для sfGuardUser.Модель sfGuardUser не имеет настраиваемых полей, которые вы могли бы использовать для чего-то подобного, но ... у нее есть поведение "Timestampable", поэтому вы могли бы сделать (псевдокод):

if (created_at == updated_at) {
  // go to select department and update updated_at
} else {
  // login as normal
}

Я считаю,эти два поля устанавливаются равными при создании нового sfGuardUser.

надеюсь, что это поможет.

0 голосов
/ 15 июня 2011

ИМХО, возможно, было бы полезно сохранить информацию об их отделах в таблице (либо расширить sf_guard_user, либо создать другую для таких "расширенных пользовательских данных", и проверить, установлена ​​ли она там.

Если нет, ониеще не ответил, и поэтому здесь впервые, подумайте над тем, чтобы дать пользователю опцию «не хочу выбирать», отличную от «еще не выбрана» - в зависимости от вашей бизнес-логики, вы можете захотеть этого или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...