Задать вопрос
Quber
@Quber
PHP Team lead

Чем отличается is_granted() и has_role() в фреймворке Symfony 2?

Собственно сабж. Чем отличается is_granted() и has_role() в фреймворке Symfony 2 ? Например, здесь symfony.com/doc/current/bundles/SensioFrameworkExt...

Привожу пример из документации бандла SensioFrameworkExtraBundle:
/**
 * @Security("has_role('ROLE_ADMIN') and is_granted('POST_SHOW', post)")
 */
public function showAction(Post $post)
{
    // somethings
}
  • Вопрос задан
  • 3314 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@mind3
has_role - проверяет доступ по роли пользователя
is_granted - проверяет права на выполнение действия.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Не знаток симфонии, но если попробовать понять.

is granted Может быть у кого угодно т.е. есть доступ к какой либо функции.
has role Принадлежность группе.

Т.е. группа админов необязательно имеет доступ post_show
Ответ написан
проверка роли и проверка разрешения.
хорошая практика - давать доступ по разрешениям, а не по роли. Это более гибко.
Ответ написан
@genby8
Вот ссылка на документацию Идея в том что автор сущности ( новость или комментарий или еще что) может редактировать её не будучи редактором/модератором и т.п. Для этого в симфонии есть "голосовалка" где проверяются права на действие с сущностью.
Примечание: субьект над которым проверяются права не обязательно сущность.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы