У меня есть защищенный тип события, который будет проверьте, вошел ли пользователь в систему, и перенаправьте его на страницу входа, если это не так:
<event-types>
<event-type name="securedPage">
<before>
<broadcasts>
<message name="CheckLogin"/>
</broadcasts>
</before>
<results>
<result name="NeedLogin" do="page.login" redirect="true"/>
</results>
</event-type>
</event-types>
На странице входа есть форма, которая ссылается на действие .обработчик событий login
, который перенаправляет на домашнюю страницу пользователя, если вход был успешным, и повторно отображает страницу входа, если это не так:
<event-handler name="action.login">
<broadcasts>
<message name="Login"/>
</broadcasts>
<results>
<result name="LoggedIn" do="page.user.home" redirect="true"/>
<result name="NotLoggedIn" do="page.login"/>
</results>
</event-handler>
Этот код отлично работает, но проблема, с которой я сейчас сталкиваюсь, заключается в том, что он будет всегда перенаправлять на домашнюю страницу пользователя, даже если они запросили другую страницу. Поскольку форма отправляет сообщение в событие action.login , а результат do
жестко запрограммирован на page.user.home
, как я могу изменить свой код отслеживать, какую страницу изначально запрашивал пользователь, и перенаправлять их туда?