У меня есть администратор. Webapp.one необходимо войти в систему, прежде чем выполнять какое-либо действие. Теперь / default / index / index имеет форму входа, которая является компонентом ExtJs. В основном, процесс входа в систему является ajax. Я создалПлагин для отключения рендеринга и макета, а также для проверки, вошел ли пользователь в систему или нет (пока нет полного acl).
вот код:
public function preDispatch(Zend_Controller_Request_Abstract $request) {
parent::preDispatch($request);
if($request->isXmlHttpRequest()){
$ViewHelper = Zend_Controller_Action_HelperBroker::getStaticHelper("ViewRenderer");
$ViewHelper->setNoRender(true);
Zend_Layout::getMvcInstance()->disableLayout();
}
$module = $request->getModuleName();
$controller = $request->getControllerName();
$action = $request->getActionName();
if(!Zend_Auth::getInstance()->hasIdentity()){
$url = "/".$module."/".$controller."/".$action;
$session = new Zend_Session_Namespace("myapp.auth");
$session->requestURL = $url;
$request->setModuleName("default");
$request->setControllerName("index");
$request->setActionName("index");
$request->setDispatched();
}
}
это похоже на работу, но тогда адресная строка все еще имеет исходный URL-адрес запроса.Например, я набрал "myapp/admin/cpanel"
в строке URL, и он открывает страницу входа в браузере, в то время как адресная строка все еще имеет "myapp/admin/cpanel"
. В тот момент, когда вход в систему завершается неудачно, потому что вывод имеет некоторую визуализацию html, я считаюстраница входа (которая работала нормально при прямом попадании).
Кто-нибудь сталкивался с этим раньше, или это просто я делаю что-то не так. Я буду рад, если вы поделитесь своим опытом с этим.
спасибо за чтение.