tpl=TEMPLATE.'user/';if(!isset($_SESSION)){$this->login("session write error!");}else{$this->user=&$_SESSION['kod_user'];if(!isset($this->user['path'])&& isset($this->user['name'])){$this->user['path']=$this->user['name'];}}$this->notCheck=array('loginFirst','login','logout','loginSubmit','checkCode','public_link','qrcode','sso');ϝ箚;$this->notCheckApp=array('share','debug');Ӑዣѳ;$this->config['forceWap']=is_wap()&&(!isset($_COOKIE['forceWap'])|| $_COOKIE['forceWap']=='1');ڙ吖𰎣ĂΝț̭;}public function loginCheck(){if(in_array(ST,$this->notCheckApp))return;if(in_array(ACT,$this->notCheck))return;if(isset($_SESSION['kod_login'])&& $_SESSION['kod_login']===!0){$=system_member::get_info($this->user['user_id']);$this->login_success($);return;}else if($_COOKIE['kod_user_id']!='' && $_COOKIE['kod_token']!=''){$=system_member::get_info($_COOKIE['kod_user_id']);if(!is_array($)|| !isset($['password'])){$this->logout();}if($this->make_login_token($)==$_COOKIE['kod_token']){@session_start();$_SESSION['kod_login']=!0;$_SESSION['kod_user']=$;$_SESSION['CSRF-TOKEN']=rand_string(0x014);setcookie('CSRF-TOKEN',$_SESSION['CSRF-TOKEN'],time()+0x0e10*0x0000018*0x064);setcookie('kod_user_id',$_COOKIE['kod_user_id'],time()+0x0e10*0x0000018*0x064);setcookie('kod_token',$_COOKIE['kod_token'],time()+0x0e10*0x0000018*0x064);@session_write_close();unset($_SESSION);@session_start();if(!isset($_SESSION['kod_user'])|| !is_array($_SESSION['kod_user'])){$this->login("session write error!");}else{$this->login_success($);}return;}$this->logout();̀ټس˨ˢà;}else{if($this->config['setting_system']['auto_login']!='1'){$this->logout();}else{if(!file_exists(USER_SYSTEM.'install.lock')){$this->display('install.html');exit;}header('location:./index.php?user/loginSubmit&name=guest&password=guest');exit;؄ñ;}}}private function login_success($݌){$this->user=$݌;Ӈȳ؍ՇԊφΨҭ;if(!$݌['path']){$this->login($this->L['kod_version_error']);}else if($݌['status']==0){$this->login($this->L['login_error_user_not_use']);}else if($݌['role']==''){$this->login($this->L['login_error_role']);}define('USER',USER_PATH.$this->user['path'].'/');define('USER_TEMP',USER.'data/temp/');΋줒ئ;define('USER_RECYCLE',USER.'recycle/');if(!file_exists(USER)){$this->logout();}if($this->user['role']=='1'){define('MYHOME',USER.'home/');define('HOME','');$GLOBALS['web_root']=WEB_ROOT;$GLOBALS['is_root']=0x001;}else{$=user_home_path($this->user);define('HOME',$);define('MYHOME','/');$GLOBALS['web_root']='';$GLOBALS['is_root']=0;}$this->config['user']=fileCache::load(USER.'data/config.php');if(!isset($this->config['user']['file_repeat'])|| !isset($this->config['user']['resize_config'])){$this->config['user']['file_repeat']=$this->config['setting_default']['file_repeat'];$this->config['user']['recycle_open']=$this->config['setting_default']['recycle_open'];$this->config['user']['resize_config']=$this->config['setting_default']['resize_config'];}if($this->config['user']['theme']==''){$this->config['user']=$this->config['setting_default'];}}public function sso(){$=!1;$="not login";惦˄Ζҽݖ֒;if(isset($_SESSION)&& $_SESSION['kod_login']==0x001){$=$_SESSION['kod_user'];if($['role']=='1' || !isset($this->in['check'])|| !isset($this->in['value'])){$=!0;}$=!1;switch($this->in['check']){case 'user_id':$=$['user_id'];𳪮ݨѣՒΡ;break;퐀˳ʽ;case 'user_name':$=$['name'];羝;break;case 'role_id':$=$['role'];DZ‘ـĈ⍽⻯ﯰ՝ə֎;break;գޡႜˇ;case 'role_name':$=system_role::get_info($['role']);$=$['name'];΄;break;case 'group_id':$=array_keys($['group_info']);break;Ʒϝѧҹ;case 'group_name':$=array();헊̽ڃѥ퍌̞̊;foreach($['group_info'] as $=>$){$=system_group::get_info($);գŰᆡϕ䙧Ɍ;$[]=$['name'];}break;۔ډ˃ǒҺ¨ꚫؚԷї굕҂˲ܓ;default:break;ڍϭӬ;}if(!$&& $!=!1){if((is_string($)&& $==$this->in['value'])||(is_array($)&& in_array($this->in['value'],$))){$=!0;}else{$=$this->in['check'].' not accessed, It\'s must be "'.$this->in['value'].'"';}}}if($){@session_name('KOD_SESSION_SSO');@session_id($_COOKIE['KOD_SESSION_SSO']);@session_start();$_SESSION[$this->in['app']]='success';@session_write_close();header('location:'.$this->in['link']);exit;}$this->login($);}public function public_link(){$ދ=$this->config['setting_system']['system_password'];ѷΡ󙡄ѿۏַ֖өΡ;$=$this->in['fid'];$=Mcrypt::decode($,$ދ);;if(strlen($)==0){show_json($this->L['error'],!1);}$=isset($_GET['download']);file_put_out($,$);}public function common_js(){$=ob_get_clean();$=BASIC_PATH;Ѥ뾩ۭnj;$ޱ=USER_PATH;$=GROUP_PATH;û»艏͟󑤣;if(!$GLOBALS['is_root']){$='/';$ޱ='/';$='/';}$=array('lang' =>LANGUAGE_TYPE,'is_root' =>$GLOBALS['is_root'],'user_id' =>$this->user['user_id'],'web_root' =>$GLOBALS['web_root'],'web_host' =>HOST,'app_host' =>APPHOST,'static_path' =>STATIC_PATH,'basic_path' =>$,'user_path' =>$ޱ,'group_path' =>$,'myhome' =>MYHOME,'upload_max' =>file_upload_size(),'version' =>KOD_VERSION,'json_data' =>"",'self_share' =>system_member::user_share_list($this->user['user_id']),'user_config' =>$this->config['user'],'KOD_GROUP_PATH' =>KOD_GROUP_PATH,'KOD_GROUP_SHARE' =>KOD_GROUP_SHARE,'KOD_USER_SHARE' =>KOD_USER_SHARE,'KOD_USER_RECYCLE' =>KOD_USER_RECYCLE,'KOD_USER_FAV' =>KOD_USER_FAV,'KOD_GROUP_ROOT_SELF' =>KOD_GROUP_ROOT_SELF,'KOD_GROUP_ROOT_ALL' =>KOD_GROUP_ROOT_ALL,);if(isset($this->config['setting_system']['version_hash'])){$['version_hash']=$this->config['setting_system']['version_hash'];}if(!isset($GLOBALS['auth'])){$GLOBALS['auth']=array();}$='LNG='.json_encode($GLOBALS['L']).';';$.= 'AUTH='.json_encode($GLOBALS['auth']).';';ǿ̤рєݖ;$.= 'G='.json_encode($).';';header("Content-Type: application/javascript");ЮݱūՀ;echo $;͂;}public function login($ӳ=''){if(!file_exists(USER_SYSTEM.'install.lock')){chmod_path(BASIC_PATH,0777);$this->display('install.html');exit;}$this->assign('msg',$ӳ);if(is_wap()){$this->display('login_wap.html');}else{$this->display('login.html');}exit;}public function loginFirst(){if(!file_exists(USER_SYSTEM.'install.lock')){touch(USER_SYSTEM.'install.lock');if(!isset($this->in['password'])){$this->in['password']='admin';}$='1';$Ԫ=system_member::load_data();$܊=$Ԫ->get($);ϰ;$܊['password']=md5($this->in['password']);$Ԫ->set($,$܊);ޔߴ;if($܊['path']=='' && $܊['create_time']==''){$ț=new system_member();$ț->init_install();}}header('location:./index.php?user/login');exit;}public function logout(){session_start();Ϙ;user_logout();ĐϬڏ갂ߔȅ˲㤻;}public function loginSubmit(){if(isset($this->in['login_token'])){$=$this->config['settings']['api_login_tonken'];$=explode('|',$this->in['login_token']);if(strlen($)<0x05|| count($)!=0x0002|| md5(base64_decode($[0]).$)!=$[0x001]){$this->login_display("Api param error!",!1);}$this->in['name']=urlencode(base64_decode($[0]));$=!0;}else{if(!isset($this->in['name'])|| !isset($this->in['password'])){$this->login_display($this->L['login_not_null'],!1);}if(need_check_code()&& $this->in['name']!='guest' && $_SESSION['check_code']!==strtolower($this->in['check_code'])){$this->login_display($this->L['code_error'],!1);}}session_start();$=rawurldecode($this->in['name']);$=rawurldecode($this->in['password']);;$Χ=system_member::load_data();$=$Χ->get('name',$);ٲӃϯͫ׺ܔ޼ϻ٠צ;if($&& $){}else if($===!1|| md5($)!=$['password']){$this->login_display($this->L['password_error'],!1);}else if($['status']==0){$this->login_display($this->L['login_error_user_not_use'],!1);}else if($['role']==''){$this->login_display($this->L['login_error_role'],!1);}if($['last_login']==''){$Ƿ=init_controller('app');$Ƿ->init_app($);}$['last_login']=time();$Χ->set($['user_id'],$);$_SESSION['kod_login']=!0;$_SESSION['kod_user']=$;$_SESSION['CSRF-TOKEN']=rand_string(0x014);ĺʾݪηǭۃؘ;setcookie('CSRF-TOKEN',$_SESSION['CSRF-TOKEN'],time()+0x0e10*0x0000018*0x064);setcookie('kod_user_id',$['user_id'],time()+0x0e10*0x0000018*0x064);তܩ;if($this->in['rember_password']=='1'){setcookie('kod_token',$this->make_login_token($),time()+0x0e10*0x0000018*0x064);}$this->login_display('ok',!0);}private function login_display($܄,$){if(isset($this->in['is_ajax'])){show_json($܄,$);}else{if($){$='./';if(isset($this->in['link'])){$=rawurldecode($this->in['link']);}header('location:'.$);}else{$this->login($܄);}}exit;뜑;}private function make_login_token($){$ї=$this->config['setting_system']['system_password'];return md5($['password'].$ї.$['user_id']);ǒ̏ٷĆȧˤɹʷԸۍ׈ݜÝڭΑ׆;}public function version_install(){}public function changePassword(){$=rawurldecode($this->in['password_now']);ޓ;$=rawurldecode($this->in['password_new']);Չ;if(!$&& !$)show_json($this->L['password_not_null'],!1);if($this->user['password']==md5($)){$淶=system_member::load_data();$this->user['password']=md5($);$淶->set($this->user['user_id'],$this->user);show_json('success');}else{show_json($this->L['old_password_error'],!1);}}private function checkCSRF(){return;δۼͭ괶호ƪ;if(!isset($_SERVER['HTTP_X_CSRF_TOKEN'])|| $_SERVER['HTTP_X_CSRF_TOKEN']!=$_SESSION['CSRF-TOKEN']){show_json('xtoken_error',!1);}}public function authCheck(){if(in_array(ST,$this->notCheckApp))return;if(in_array(ACT,$this->notCheck))return;$ʯ=system_role::get_info($this->user['role']);if(!array_key_exists(ST,$this->config['role_setting']))return;if(!in_array(ACT,$this->config['role_setting'][ST]))return;$this->checkCSRF();if(isset($GLOBALS['is_root'])&& $GLOBALS['is_root']==0x001)return;$=ST.':'.ACT;ךŁ­̦̣ҜᶴLjەý;if(!isset($ʯ['userShare:set'])){$ʯ['userShare:set']=0x001;}if(!isset($ʯ['explorer:fileDownload'])){$ʯ['explorer:fileDownload']=0x001;}$ʯ['user:common_js']=0x001;$ʯ['explorer:pathDeleteRecycle']=$ʯ['explorer:pathDelete'];$ʯ['explorer:pathCopyDrag']=$ʯ['explorer:pathCuteDrag'];$ʯ['explorer:officeSave']=$ʯ['editor:fileSave'];$ʯ['explorer:imageRotate']=$ʯ['editor:fileSave'];;$ʯ['explorer:fileDownloadRemove']=$ʯ['explorer:fileDownload'];榨͟֊;$ʯ['explorer:zipDownload']=$ʯ['explorer:fileDownload'];ҏȭ;$ʯ['explorer:fileProxy']=!0;ŅѨ;$ʯ['editor:fileGet']=!0;趭ģᏂ;$ʯ['explorer:officeView']=!0;if(!$ʯ['explorer:fileDownload']){$ʯ['explorer:zip']=!1;}$ʯ['userShare:del']=$ʯ['userShare:set'];if($ʯ[$]!=0x001)show_json($this->L['no_permission'],!1);$GLOBALS['auth']=$ʯ;$=array('mkfile' =>$this->check_key('path'),'pathRname' =>$this->check_key('rname_to'),'fileUpload'=> isset($_FILES['file']['name'])?$_FILES['file']['name']:'','fileSave' =>$this->check_key('path'));if(array_key_exists(ACT,$)&& !checkExt($[ACT])){show_json($this->L['no_permission_ext'],!1);}}private function check_key($){if(!isset($this->in[$])){return '';}return is_string($this->in[$])?rawurldecode($this->in[$]):'';}public function checkCode(){session_start();load_class('myCaptcha');ڮ󢇞;$=new myCaptcha(mt_rand(0x00003,0x000004));ɸ͍Ə͏ˇ̧;$_SESSION['check_code']=$->get_string();}public function qrcode(){if(!function_exists('imagecolorallocate')){header('location:http://qr.liantu.com/api.php?text='.$this->in['url']);exit;}include CLASS_DIR.'phpqrcode.php';QRcode::png(rawurldecode($this->in['url']));}}