zhsso_getUserbyName ( $userinfo ); // // $sso_info=explode("\r",$sso_info); // // $ts = json_decode ( $sso_info['1'], true ); // $this->userinfo=$this->_get_userinfo_by_username ( $userinfo ); }else{ Doo::loadCore ( 'uri/DooUriRouter' ); $router = new DooUriRouter (); $routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER ); if($routeRs['1']=="login"||$routeRs['1']=="do_login"){ }else{ setcookie ( "auth_main", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE );die; } } //$this->userinfo = array ('uid' => '2','groupid'=>'1', 'username' => "kakachen", "password" => "123456", "credit3","email" => "529868749@qq.com", "avatar" => "/global/img/avatarNormal.png" ); if (empty ( $this->userinfo )) { //跳转前台登录 define ( "MASTER_ID", 0 ); //header ( 'Content-Type:text/html;charset=utf-8' ); //@header ( "Location: " . WEB_SITE . "/messager?content=请登录纵横&url=/login" ); } else { $message_count = $this->_sys_message_count ( $this->userinfo ['uid'] ); define ( "MASTER_ID", $this->userinfo ['uid'] ); define ( 'MEMBER_NAME', $this->userinfo ['username'] ); define ( 'MEMBER_AVATAR', $this->userinfo ['avatar'] ); define ( "MESSAGE_COUNT", $message_count ['count'] ); define('EMAIL',$this->userinfo['email']); define("CREDIT3", 0); $group=$this->_get_group_by_id($this->userinfo ['groupid']); //有BUG 应该判断用户组 if ($group['grouptype'] == 1 ) { include SITE_PATH . 'protected/config/admin_menu.conf.php'; $rs['menu']= $menu; $rs['userinfo']=$this->userinfo; //判断是否已经登录--读取sessiong return $rs; } else { setcookie ( "auth_main", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); //无权限进入后台 header ( 'Content-Type:text/html;charset=utf-8' ); @header ( "Location: " . WEB_SITE . "/messager?content=无权进入后台&url=/" ); } } } /** * 持续认证 */ function init(){ //初始化信息 Doo::loadCore ( 'uri/DooUriRouter' ); $router = new DooUriRouter (); $routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER ); //是否有登录信息 if (isset ( $_COOKIE ['auth'] )) { require_once (SITE_PATH . '/protected/plugin/client.php'); $client = new client ( ZHSSO ); //还需要加入权限 $userinfo = authcode ( $_COOKIE ['auth'] ); $sid = $_COOKIE ['sid']; $sso_info = $client->zhsso_getUserbyName ( $userinfo ); $sso_info=explode("\r",$sso_info); $ts = json_decode ( $sso_info['0'], true ); $this->userinfo = $this->_get_userinfo_by_username ( $userinfo ); $this->userinfo['credit3']=$ts[0]['bank']; $this->userinfo['email']=$ts[0]['useremail']; $route_group="GENERAL_USER"; if(!empty($this->userinfo)){ if($this->userinfo['groupid']==99) $route_group="VIP_USER"; } //持续状态认证 if (! $this->_init_login ( $routeRs, $route_group )) { if($routeRs['1']=="show_advisory"){ header ( 'Content-Type:text/html;charset=utf-8' ); header ( "Location: " . WEB_SITE . "/show_tip2" ); }else{ header ( 'Content-Type:text/html;charset=utf-8' ); @header ( "Location: " . WEB_SITE . "/messager?content=权限不足,请联系管理员&url=/" ); } }elseif (empty ( $this->userinfo )){ setcookie ( "auth", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); setcookie ( "sid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); setcookie ( "tuid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); header ( 'Content-Type:text/html;charset=utf-8' ); @header ( "Location: " . WEB_SITE . "/messager?content=请确认已经登录后操作&url=/login" ); } //持续检测登录异常状态 if (! $this->_login_authenticate ( $sid )) { Doo::loadModel ( 'MessageDao' ); $messagedao = new MessageDao (); $subject = "你的账号发生异常登录"; $content = "您的账号发生异常登录,请检查账号安全。"; $messagedao->send_message ( ADMIN_NAME, 0, $this->userinfo ['uid'], $subject, $content,2 ); setcookie ( "auth", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); setcookie ( "sid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); setcookie ( "tuid", "", time () + 3600 * 24, "/", COOKIE_WEB_SITE ); header ( 'Content-Type:text/html;charset=utf-8' ); @header ( "Location: " . WEB_SITE . "/messager?content=登录发生异常,请重新登陆&url=/login" ); } $message_count = $this->_sys_message_count ( $this->userinfo ['uid'] ); if($message_count['count']>10) $message_count['count']="10+"; $tuid = $_COOKIE ['tuid']; //$avatar = $client->ps_getavatar ( $tuid ); $avatar=json_decode($this->userinfo['avatar'],true); //print_r($avatar);echo $this->userinfo['avatar']; if (empty ( $avatar )){ $avatar[30] = DEF_AVATAR;$avatar[45] = DEF_AVATAR;$avatar[90] = DEF_AVATAR;$avatar[180] = DEF_AVATAR; } define ( "MASTER_ID", $this->userinfo ['uid'] ); define ( 'MEMBER_NAME', $this->userinfo ['username'] ); define ( 'CREDIT3', $this->userinfo['credit3'] ); define ( 'SSO_UID', $ts[0]['id'] ); define('EMAIL',$this->userinfo['email']); define ( 'MEMBER_AVATAR_30', $avatar[30] ); define ( 'MEMBER_AVATAR_45', $avatar[45] ); define ( 'MEMBER_AVATAR_90', $avatar[90] ); define ( 'MEMBER_AVATAR_180', $avatar[180] ); define ( "MESSAGE_COUNT", $message_count ['count'] ); } else { //未登陆不容许浏览 if (! $this->_init_login ( $routeRs, "VISITOR_USER" )) { header ( 'Content-Type:text/html;charset=utf-8' ); @header ( "Location: " . WEB_SITE . "/messager?content=请确认已经登录后操作&url=/login" ); return false; } } $this->userinfo['$routeRs']=$routeRs; return $this->userinfo; } /** * 持续认证 */ private function _login_authenticate($sid = "") { Doo::loadModel ( 'SessionDao' ); Doo::loadModel ( 'UserlogDao' ); $sessiondao = new SessionDao (); $Userlogdao = new UserlogDao (); $rs = $sessiondao->get_seesion ( $sid ); if (empty ( $rs )) return false; $time = get_date (); //会话过期-删除 if ($time > $rs ['lifetime']) { $sessiondao->sid = $sid; $this->db ()->delete ( $sessiondao->sid ); setcookie ( "auth", "", time () + (3600 * 24), "/", COOKIE_WEB_SITE ); setcookie ( "sid", "", time () + (3600 * 24), "/", COOKIE_WEB_SITE ); return false; } //登录ip出现异常 $ip = client_ip (); if ($ip != $rs ['ip']) { $action = $Userlogdao->set_USER_LOGINIP_EXCEPTIONAL ( $ip ); $Userlogdao->set_userlog ( $rs ['uid'], $rs ['username'], $action, $ip ); return true; } return true; } /** * 获取用户信息 */ private function _get_userinfo_by_username($username = "") { Doo::loadModel ( 'UserDao' ); $userdao = new UserDao (); $rs = $userdao->get_users_by_name ( $username ); return $rs; } /** * 获取用户信息 */ public function _get_group_by_id($id = "") { Doo::loadModel ( 'GroupDao' ); $groupDao = new GroupDao (); $rs = $groupDao->get_group_by_id($id) ; return $rs; } /** * 获取系统消息条数 */ private function _sys_message_count($uid = 0) { Doo::loadModel ( 'MessageDao' ); $messagedao = new MessageDao (); $rs = $messagedao->get_message_count_by_touid ( $uid ); return $rs; } /** * 用户登录统一判断-容许未登陆可以预览的页面 */ private function _init_login($routeRs = array(), $user_type = "VISITOR_USER") { $rt = false; //用户角色 if ($user_type == "VISITOR_USER") { if (in_array ( $routeRs [1], DOO::conf ()->VISITOR_USER )) $rt = true; } elseif ($user_type == "GENERAL_USER") { if (in_array ( $routeRs [1], DOO::conf ()->GENERAL_USER )){ $rt = true; } }elseif ($user_type == "VIP_USER"){ if (in_array ( $routeRs [1], DOO::conf ()->VIP_USER )){ $rt = true; } } return $rt; } } ?>