Разрешить незащищенный доступ к действию объекта Symfony в security.yml - PullRequest
1 голос
/ 18 октября 2011

У меня есть определенный модуль в Symfony 1.4.13, который по умолчанию защищен в его файле security.yml.У меня есть одно конкретное объектное действие, которое я хотел бы сделать доступным для всех (вышедших из системы пользователей), но, похоже, не могу найти правильный способ исправить имя действия в файле YAML, чтобы получить совпадение с ним.

В частности, у меня есть project модуль с типичными действиями index, show, create и т. Д., А также runReport действие объекта (поэтому имя метода действия executeListRunReport).Файл security.yml выглядит следующим образом:

all:
  is_secure: true

index:
  credentials: pm_view

show:
  credentials: pm_view

filter:
  credentials: pm_view

runReport:   # This is the one that is giving me problems
  is_secure: false

Мой метод в actions.php:

public function executeListRunReport(sfWebRequest $request) {
...
}

Это прекрасно работает для вошедшего в систему пользователя при переходе на project/[idOfObject]/ListRunReport,

Как я могу написать файл security.yml, чтобы позволить кому-либо получить доступ к этому действию (например, непосредственно с URL-адреса, который я генерирую вручную) без необходимости входа в систему?Спасибо!

Ответы [ 2 ]

3 голосов
/ 19 октября 2011

, если ваши приложения / * / config / security.yml имеют

default:
  is_secure: true

Вы можете определить в security.yml вашего модуля:

index:
  credentials: pm_view

show:
  credentials: pm_view

filter:
  credentials: pm_view   

runReport:
  is_secure: false

И удалите из вашего модуля:

all:
  is_secure: true
1 голос
/ 20 октября 2011

Оказывается, проблема была в том, как я назвал элемент в security.yml (извините, если вопрос не был достаточно ясен, чтобы указать, что это, вероятно, исходная проблема).

Работает с listRunReport , поэтому код должен выглядеть так:

listRunReport:
    is_secure:false

@ arsenik был прав в том, что all: is_secure: true было ненужным, но, к сожалению, это не решило проблему (она может остаться).

Урок заключается в том, что при использовании действий объекта списка, которые в итоге получают имя как executeListXYZ, он должен быть помечен как listXYZ в security.yml.

...