пятница, 4 апреля 2014 г.

Symfony 2: Назначение роли по умолчанию для нового пользователя

В офф документации Symfony довольно подробно и ясно описано как реализовать аутентификацию пользователя через базу данных. Там же рассмотрен вопрос о сохранении ролей в БД. А вот как назначить роль по умолчанию новому пользователю - не описано. Реализовать этот недостающий момент можно следующим образом:

Сущность User

В сущность User нужно добавить метод:

//...
public function setRoles($roles)
{
    $this->roles = $roles;
}
//...

Контролер

В контролере, когда добавляется новый пользователь, следует предусмотреть такой код:

//...
use Doctrine\Common\Collections\ArrayCollection;
//...
$role = $this->getDoctrine()
             ->getRepository('SiteMemberBundle:Role')
             ->findOneBy(array('role'=>'ROLE_USER'));
$roles = new ArrayCollection();
$roles->add($role);
$user->setRoles($roles);
//...

Удачи!

Комментариев нет:

Отправить комментарий