Подсистема FW/1 - перенаправление на верхний сайт

Это моя первая попытка подсистем и по большей части дела идут хорошо. У меня возникают проблемы при перенаправлении пользователей с сайта подсистемы на главный верхний сайт, когда сеанс заканчивается.

Здесь может быть структура сайта, она довольно стандартная.

  1. Я вошел с главного сайта
  2. Основываясь на моем логине, я перенаправлен в соответствующую подсистему, т. Е. (SubSite1, subSite2)
  3. Когда моя сессия заканчивается, я хочу перенаправить на mainSite.login, вместо этого он перенаправляет меня на subSite1.login.

У меня вопрос, как мне перенаправить пользователя с сайтов подсистемы на главную учетную запись?

Вот моя структура сайта.

mainSite
-assets
-contorllers
    -login.cfc
    -security.cfc
-framework
-layouts
-model
-subsystems
    -subSite1
        -controllers
        -layouts
        -model
        -views
            -main
                -default.cfm
        application.cfc
        index.cfm
    -subSite2
        ...
-views
    -login
        -default.cfm (login form)
application.cfc
index.cfm

Файл /mainSite/controllers/security.cfm прямо из загрузки FW/1 с небольшими изменениями для моих нужд. Я пытался обновить редирект в функции authorize(), но мне не повезло. Заранее спасибо за ваши идеи.

component {

function init( fw ) {
  variables.fw = fw;
}

function session( rc ) {
  // set up the user's session
  session.auth = {};
  session.auth.isLoggedIn = false;
  session.auth.fullname = 'Guest';
}

function authorize( rc ) {
  // check to make sure the user is logged on
  if (not(structKeyExists(session, "auth") && session.auth.isLoggedIn ) && !listfindnocase('login', variables.fw.getSection() ) && !listfindnocase('main.error', variables.fw.getFullyQualifiedAction() )) {
  variables.fw.redirect('login');
  }
}

}

2 ответа

Вы должны предоставить то, что по существу равносильно полному перенаправлению. Если ваша подсистема по умолчанию ("верхнего уровня") называется "основной", а секция по умолчанию называется "основной", то это будет выглядеть так:

variables.fw.redirect('main:main.login');

Я смог получить желаемый результат с помощью location().

//variables.fw.redirect('login');
location(url="/mainSite/login");

Я хочу обновить этот ответ на случай, если другие столкнутся с тем же сценарием. Шон Корфилд предоставил ответ в группе FW/1 Google. Вот ссылка https://groups.google.com/forum/

variables.fw.redirect(':login');
Другие вопросы по тегам