sfDoctrineGuard - получить доступ только к тем группам, в которые входит пользователь

У меня есть таблица со столбцом sfGuardGroup, поэтому, когда пользователь входит в систему, он может видеть только записи, сделанные пользователями в их группе.

При создании записи я хочу иметь поле выбора для sfGuardGroup, которая содержит только те группы, членом которых является зарегистрированный пользователь.

Кто-нибудь знает, как это сделать, пожалуйста?

Спасибо

1 ответ

В форме:: настроить

  1. получить пользователя: использовать sfContex::getInstance()->getUser() (простой способ, не рекомендуется) или добавить sfUser из контроллера в качестве опции

    $this->form = new myAwesomeUserForm(array(),array('user'=>$this->getUser()));

  2. Используйте sfWidgetFormChoice

  3. Используйте sfGuardSecurityUser::getGroups ($user->getGroups), чтобы установить выбор для виджета sfWidgetFormChoice. Здесь $ user является экземпляром myUser>sfGuardSecurityUser
  4. Не забудьте валидатор
Другие вопросы по тегам