tpl=TEMPLATE.'user/';if(!isset($_SESSION)){$this->login(DATA_PATH."
".$GLOBALS['L']['path_can_not_write_data']);}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(DATA_PATH."
".$GLOBALS['L']['path_can_not_write_data']);}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'];̗;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;$=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;ߣՉ;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']));銳ӤըЙðƄּŴџ؆ܜ;}}