public function doLogin($loginname, $password) { if (session('can_doLogin') != true) { echo TO_HACKERS; return; } session('can_doLogin', false); $operator = new \Home\Model\OperatorModel(); $result = $operator->queryOperator($loginname, $password); if (!empty($result) && count($result) == 1) { session('operatorId', $result[0]['operator_id']); session('instId', $result[0]['inst_id']); session('operatorName', $result[0]['user_name']); session('isSuperAdmin', $result[0]['is_super_admin']); session('teacherId', $result[0]['teacher_id']); if ($result[0]['is_super_admin'] == 1) { session('role', "超级管理员"); } else { session('role', "管理员"); } $roleList = $operator->findRolesByOperator($result[0]['inst_id'], $result[0]['operator_id']); for ($i = 0; $i < count($roleList); $i++) { if ($roleList[$i]['code'] == 'ROLE_TEACHER') { session('ROLE_TEACHER', 1); } //TODO 添加角色权限 } //add login log try { $ip = get_client_ip(); $loc = new \Org\Net\IpLocation('UTFWry.dat'); // 实例化类 参数表示IP地址库文件 $locationArr = $loc->getlocation($ip); $location = $locationArr['country'] . $locationArr['area']; $operator->addLoginLog($result[0]['operator_id'], date('Y-m-d H:i:s', time()), $ip, $location); } catch (Exception $e) { //do nothing } session("loginErr", 0); $this->redirect('Operator/showDashboard', null, 0, '页面跳转中...'); } else { session("loginErr", 1); $this->redirect('Operator/login', null, 0, '页面跳转中...'); } }