2010-11-21 3 views
0

Удивительно, как назвать этот вопрос. Думайте, что это лучшая ситуация.User Authorization in KohanaPHP App vs Endless Loop

Ситуация: У меня есть небольшое приложение, написанное в рамках KohanaPHP. Однако есть одна небольшая ошибка, которая делает меня сумасшедшей.

У меня есть собственный Core_Controller, который расширяется каждым контроллером в этом приложении. В конструкторе этого контроллера я проверяю статус профиля пользователя. Все идет нормально. Хотя я столкнулся с логической проблемой. Это называется бесконечным циклом перенаправления. Если я попытаюсь перенаправить (в конструкторе Core_Controller) пользователя на Member_Controller, он не сможет работать из-за бесконечного lopp. Я понимаю, почему это происходит.

Решение: Я ищу решение, как сделать его гибким. Я попытался перенести эту проверку в помощника и вызвать ее в конструкторе Core_Controller. Однако он может работать правильно.

Вопрос: Должен ли я включать проверку в конструктор каждого контроллера? Есть ли универсальный метод для этого?

Ожидание ваших мыслей.

M.A.

+0

Я также пытался использовать базовый контроллер (http://docs.kohanaphp.com/general/controllers#using_a_base_controller_for_your_application). С теми же результатами. –

ответ

0

Просто проверить, если пользователь проверен и действия текущего запроса не является чем-то вроде члена/проверки, сделать редирект.

И parent::__construct(); будет вызывать родительский конструктор, так что я не вижу проблемы в том, что либо ..

0

Вам необходимо условие, при котором он не перенаправлять (на странице вы перенаправлены). Вам понадобится код, похожий на этот.

if not member_controller then 
    redirect to member_controller 
else 
    do nothing 
endif 

Остальное не нужно, а просто добавлено, так что это более ясно для вас.