所以在登录期间,我想检查用户是否在特定的客户组中,如果检查失败,则阻止登录。
我扩展了 AccountController,并在快速检查中添加了:
$customer = Mage::getModel('customer/customer')->loadByEmail($login['username']);
if ($customer->getGroupId() != 2) {
$msg = Mage::getSingleton('core/session')->addError($this->__('You must have a wholesale account to access this area.'));
header('Location: '. Mage::getUrl('customer/account/login'));
exit;
}
但是,运行此命令会返回会话错误消息“使用网站范围时必须指定客户网站 ID”。
基本上,我只需要获取尝试登录的用户的组 ID,我想我可以通过客户模型中提供的方法 loadByEmail() 来获取它。但是,是的,现在是星期五,显然魔法领主希望我迟到。
我尝试了多种方法来使其正常工作,包括允许登录,然后检查 ID,然后在检查失败时执行 $session->logout() ,但这阻止了我在注销后显示会话错误消息() 方法正在清除所有会话消息(包括“核心/会话”)。
有任何想法吗?