| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 | 
							- <?php
 
- /**
 
-  * 核心控制
 
-  * @author cp
 
-  */
 
- class BaseController {
 
- 	
 
- 	public $userinfo;
 
- 	
 
- 	function __construct() {
 
- 		
 
- 	}
 
- 	
 
- 	/**
 
- 	 * 后台登录
 
- 	 */
 
- 	function admin_init(){
 
- 	//是否已经登录纵横
 
- 		$rs=array();
 
- 		 
 
- 		if (isset ( $_COOKIE ['auth_main'] )) {
 
- 			
 
- 			//$userinfo = authcode ( $_COOKIE ['auth'] );
 
- 			
 
- 			$userinfo=authcode ($_COOKIE ['auth_main']);
 
- 			
 
- 			
 
- //			
 
- //			if($login_user!=$userinfo){
 
- //				header ( 'Content-Type:text/html;charset=utf-8' );
 
- //				@header ( "Location: " . WEB_SITE . "/messager?content=请重新纵横&url=/login" );
 
- //			}
 
- 			
 
- //			require_once (SITE_PATH . '/protected/plugin/client.php');
 
- //		
 
- //			$client = new client ( ZHSSO );
 
- //			
 
- //			$userinfo = authcode ( $_COOKIE ['auth_main'] );
 
- //			
 
- //			$sso_info = $client->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;
 
- 	}
 
- 	
 
- }
 
- ?>
 
 
  |