Допустим, у меня есть свой access_control
блок под security.yml
:Symfony2 - установить access_control безопасности, чтобы разрешить только аутентификацию анонимно
access_control:
- { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/reset-password, roles: IS_AUTHENTICATED_ANONYMOUSLY }
В этом случае каждый имеет допускаемые ввести homepage
и reset-password
страниц. Но я хотел бы разрешить эти страницы только для пользователей, анонимно анонимных. Полностью аутентифицированные пользователи должны получить 403 access denied error
или 404 page not found
.
Согласно documentation с allow_if
Я должен быть ablo для создания ролевых выражений для определения доступа. Но если я делаю это так:
access_control:
- { path: ^/reset-password, allow_if: "has_role('IS_AUTHENTICATED_ANONYMOUSLY') and not has_role('IS_AUTHENTICATED_FULLY')" }
Теперь следуя идее полностью идентифицированные пользователи (в системе) не должно быть позволено получить доступ к странице и анонимно подлинности должен быть в состоянии получить доступ, но, к сожалению, ни один из пользователи могут получить к нему доступ ...
Любые идеи, что мне не хватает?
UPDATE
Это заставило его работать, как предложено ниже по правильному ответу:
- { path: ^/reset-password, allow_if: "is_anonymous() and !is_authenticated()" }
Совершенная он сделал это работает просто отлично! '- {путь: ^/reset-password, allow_if:" is_anonymous() и! is_authenticated() "}' –