ecmall后台判断登录在执行controller之前,也就是在其父类中执行了判断登录的方法即class BackendApp这个类。BackendApp中,重写了基类的方法 _run_action。
function _run_action()
{
/* 先判断是否登录 */
if (!$this->visitor->has_login)
{
$this->login();
return;
}
/* 登录后判断是否有权限 */
if (!$this->visitor->i_can('do_action', $this->visitor->get('privs')))
{
$this->show_warning('no_permission');
return;
}
/* 运行 */
parent::_run_action();
}