Часто бывает удобно передать экземпляр пользователя в качестве опции при создании формы в действии:
public function executeNew(sfWebRequest $request)
{
$this->form = new ModelForm(null, array('user'=>$this->getUser));
}
Теперь вы можете настроить форму на основе атрибутов сеанса пользователя:
class ModelForm extends BaseModelForm
{
public function configure()
{
if ($this->getOption('user')->getAttribute('is_bot', false)
{
//set your widgets and validators
}
}
}