然之设计时是有guest理念的,比如在app\sys\common\model.php第711行,代码如下
如果session丢失,则会默认当前登录用户为guest,这个设计虽然在session丢失之后不会影响页面的权限控制,但是存在一个问题,就是签到和签退都没有过滤account。代码如下(app\oa\attend\control.php第246行)
修复方法很简单,只需要在两个函数的开头都加上如下代码(涉及语言包的自己整理)
if ($this->app->user->account == 'guest') {
$this->send ( array (
'result' => 'fail',
'message' => "登录已失效"
) );
}
最后,分析一下什么情况会导致session丢失:
1、登录后长时间不操作,导致服务器session超时;
2、登录后手动清空了浏览器的cookie信息、会话信息、全部缓存等(下图为火狐Firebug方法)
回贴