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;
- }
-
- }
- ?>
|