CakePHP: ложно-положительная ошибка с ACL - PullRequest
3 голосов
/ 29 сентября 2011

Я установил работающую систему ACL с CakePHP на существующем сайте моей компании.Ограничение доступа работает отлично, группы и отдельные пользователи, которые не имеют права посещать определенную часть сайта, получают сообщение authError, объясняющее, что они не имеют надлежащих прав.

Единственная проблема заключается в том, чтов Firefox я иногда получаю - что я хотел бы назвать - ложные срабатывания.Это означает, что, даже если у пользователя есть доступ к определенному контроллеру и действию, по-прежнему всплывает authError.Странно то, что представление по-прежнему отображается правильно, и, за исключением authError, в этом нет ничего плохого.Все работает, пользователи могут видеть то, что им нужно видеть.Только иногда authError по-прежнему отображается.

Теперь это иногда происходит случайно в Firefox, но в IE8 это происходит постоянно.Даже если у пользователя есть полный доступ ко всему сайту, сообщение authError по-прежнему отображается на каждой отдельной странице в IE8.Я не проверял, сохраняется ли эта проблема в других браузерах IE, но, поскольку это происходит как в IE8, так и в FF, я думал, что они, вероятно, существуют и в других.

Теперь я не могу разобратьсяпочему это происходит, потому что здесь нет реальной картины.В FF authError случайным образом дает ложное срабатывание, а в IE8 он просто все время отображается.

Можно утверждать, что по какой-то причине права пользователей проверяются после того, как сообщению authError было дано 'go'появляться.В результате правильный доступ, даже если сообщение об ошибке уже отображалось.Я уже проверил, имеет ли время загрузки страницы какое-либо отношение к этому, но, похоже, это не так.

Есть ли пользователи вокруг, которые имеют какое-либо представление, что может быть причиной этого?проблема?Заранее спасибо!

1 Ответ

0 голосов
/ 19 декабря 2011

Я не совсем уверен, почему это происходит, и я не знаю, смогли ли вы выяснить вашу проблему.Тем не менее, я также использую ACL, и у меня была похожая проблема, и я хотел бы опубликовать ее здесь и, надеюсь, кому-нибудь помочь.

У меня был контроллер Articles, который требовал, чтобы действия index и view были общедоступными.Что бы я ни делал, ничего не получалось.Я бы все равно получил такой же not authorized error.После многих бессонных ночей попыток и попыток я пришел к выводу, что, хотя я запрашиваю, например, действие view, любые другие действия, на которые есть ссылки в действии просмотра, например getRelated или getComments, должныбыть добавленным также.

Проблема была исправлена, или я так подумал.Тем не менее, периодически, ошибка будет появляться снова и снова.Та же проблема, та же ошибка.Теперь я смог получить доступ к действию «Просмотр», но не к «Индексу», хотя с $this->Auth->allow

все выглядело неплохо. После еще многих царапин на голове я пришел к выводу, что мне нужно сделать то же самое с моимКонтроллер категорий.В этом контроллере я создал действие getRelated, которое будет извлекать все статьи, связанные с конкретной статьей, по ее категории.

Как только я это сделал, теперь все мои проблемы исчезли, и у меня нет опытапохожая проблема.Теперь я могу сосредоточиться на других разделах моего проекта.

...