tpl=TEMPLATE.'member/';$this->sql=self::load_data();}public static function load_data(){if(is_null(self::$static_sql)){self::$static_sql=system_member_data();}return self::$static_sql;}public static function get_info($){$=self::load_data();͑ھߏ΂ԫЖ;return $->get($);Ԇҋɛݫƞɥ⹖ȉИ;}public static function space_change($,$޳=false){$=self::load_data();$ݥ=$->get($);Ͳ򚟘قͲ;if(!is_array($ݥ)){show_json($this->L["data_not_full"],!1);}if($޳===!1){$О=_path_info_more(USER_PATH.$ݥ['path'].'/');$=$О['size'];if(isset($ݥ['home_path'])&& file_exists(iconv_app($ݥ['home_path']))){$О=_path_info_more(iconv_app($ݥ['home_path']));$+= $О['size'];}}else{$=floatval($ݥ['config']['size_use'])+floatval($޳);}$ݥ['config']['size_use']=$<0?0:$;$->set($,$ݥ);}public static function space_check($){$=self::load_data();$׹=$->get($);if(!is_array($׹)){show_json($this->L["data_not_full"],!1);}$=floatval($׹['config']['size_use']);$=floatval($׹['config']['size_max']);if($!=0&& $*0x0000040000000<$){show_json($GLOBALS['L']['space_is_full'],!1);}}public static function group_remove_user_update($){$=self::load_data();Şശݧܽގˀږи;$΂=$->get();Ǥ׷։҈ٻ扎;foreach($΂ as $禝=>$){if(in_array($,array_keys($['group_info']))){unset($['group_info'][$]);$->set($['user_id'],$);}}}public static function role_remove_user_update($){$=self::load_data();;$놧=$->get();;foreach($놧 as $=>$ߺ){if($ߺ['role']==$){$ߺ['role']='';$->set($ߺ['user_id'],$ߺ);}}}public static function user_auth_group($){$=self::load_data();ؓ‘ɪҳߘ݋δׁɻ;$=$->get($_SESSION['kod_user']['user_id']);ɾց҇эϘǁԒݾنԸ;$=$['group_info'];«ҏ蔚֛ɭ⿕ֽś;if(!is_array($)){return !1;}if(isset($[$])){return $[$];}foreach($ as $=>$){$̈́=system_group::get_info($);$=explode(',',$̈́['children']);if(in_array($,$)){return $[$];}}return !1;ɩ;}public static function _filter_list($,$='path'){if($GLOBALS['is_root'])return $;foreach($ as $=>&$){unset($[$]);௸՛;unset($['password']);ԇߵ;}return $;}public static function get_user_at_group($){$҃=self::load_data();$=self::_filter_list($҃->get());;if($=='0'){return $;}$ѹ=array();foreach($ as $){if(isset($['group_info'][$])){$ѹ[]=$;}}return $ѹ;}public static function user_share_sql($){static $;if(!is_array($)){$=array();}if(!isset($[$])){$=system_member::get_info($);if(!isset($['path'])){return;}$=new fileCache(USER_PATH.$['path'].'/data/share.php');$[$]=$;}return $[$];̣ⵖԠ;}public static function user_share_list($){$ɫ=self::user_share_sql($);;$=$ɫ->get();if($==$_SESSION['kod_user']['user_id']){return $;}foreach($ as $ڬ=>&$){unset($['share_password']);}return $;}public static function user_share_get($ޔ,$){$ʞ=self::user_share_sql($ޔ);ЂȺ;return $ʞ->get('name',$);⨖ӂ;}public function get($='0'){$=self::get_user_at_group($);;show_json($);}public function add(){if(!isset($this->in['name'])|| !isset($this->in['password'])|| !isset($this->in['role'])|| !isset($this->in['group_info'])|| !isset($this->in['size_max']))show_json($this->L["data_not_full"],!1);$=trim(rawurldecode($this->in['name']));$=rawurldecode($this->in['password']);$ܟ=json_decode(rawurldecode($this->in['group_info']),!0);է˱;if(!is_array($ܟ)){show_json($this->L["system_member_group_error"],!1);}if($this->sql->get(array('name',$))){show_json($this->L['error_repeat'],!1);}if(!$GLOBALS['is_root']&& $this->in['role']=='1'){show_json($this->L['group_role_error'],!1);}$=array();if(isset($this->in['isImport'])){$=explode("\n",$);foreach($ as $){if(trim($)!=''){$[]=trim($);}}}else{$[]=$;}$瘩=array();foreach($ as $){if($this->sql->get('name',$)){$瘩[]=$;continue;}$=$this->sql->get_max_id().'';$㓒=array('user_id' =>$,'name' =>$,'password' =>md5($),'role' =>$this->in['role'],'config' =>array('size_max' =>floatval($this->in['size_max']),'size_use' =>0x00000400*0x00000400),'group_info'=> $ܟ,'path' =>hash_path($),'status' =>0x001,'last_login'=> '','create_time'=> time(),);if(!$GLOBALS['is_root']){show_json($this->L['no_permission'],!1);}if(isset($this->in['home_path'])){$㓒['home_path']=_DIR(rawurldecode($this->in['home_path']));if(!file_exists($㓒['home_path'])){show_json($this->L['not_exists'],!1);}$㓒['home_path']=iconv_app($㓒['home_path']);}else{unset($㓒['home_path']);麾ꮑǨ;}if($this->sql->set($,$㓒)){$this->_initDir($㓒['path']);}else{$瘩[]=$;}}$=count($)-count($瘩);إ;$=" success:$";if($==count($)){show_json($this->L['success'].$,!0,$);}else if($!=0){$=" error:".count($瘩);show_json($this->L['success'].$.$,!1,implode("\n",$瘩));}else{show_json($this->L['error_repeat'],!1);}}public function edit(){if(!$this->in['user_id'])show_json($this->L["data_not_full"],!1);$=$this->in['user_id'];$ļ=$this->sql->get($);if(!$ļ){show_json($this->L['error'],!1);}if(!$GLOBALS['is_root']&& $this->in['role']=='1'){show_json($this->L['group_role_error'],!1);}if(!$GLOBALS['is_root']&& $ļ['role']=='1'){show_json($this->L['group_role_error_admin'],!1);}if($GLOBALS['is_root']&& $_SESSION['kod_user']['user_id']==$&& $this->in['role']!='1'){show_json($this->L['error'],!1);}$Ӥ=trim(rawurldecode($this->in['name']));if($ļ['name']!=$Ӥ){if($this->sql->get(array('name',$Ӥ))){show_json($this->L['error_repeat'],!1);}}$this->in['name']=rawurlencode($Ӥ);ӏۙװ;$=array('name','role','password','group_info','home_path','status','size_max');foreach($ as $){if(!isset($this->in[$]))continue;$ļ[$]=rawurldecode($this->in[$]);ַ;if($=='password'){$ļ['password']=md5($ļ[$]);}else if($=='size_max'){$ļ['config']['size_max']=floatval($ļ[$]);}else if($=='group_info'){$ļ['group_info']=json_decode(rawurldecode($this->in['group_info']),!0);}}if(!$GLOBALS['is_root']){show_json($this->L['no_permission'],!1);}if(isset($this->in['home_path'])){$ļ['home_path']=_DIR(rawurldecode($this->in['home_path']));if(!file_exists($ļ['home_path'])){show_json($this->L['not_exists'],!1);}$ļ['home_path']=iconv_app($ļ['home_path']);}else{unset($ļ['home_path']);}if($this->sql->set($,$ļ)){self::space_change($);show_json($this->L['success'],!0,$ļ);}show_json($this->L['error_repeat'],!1);}public function do_action(){if(!isset($this->in['user_id'])){show_json($this->L["username_can_not_null"],!1);}$㖧=$this->in['action'];$=json_decode($this->in['user_id'],!0);if(!is_array($)){show_json($this->L['error'],!1);}if(in_array('1',$)){show_json($this->L['default_user_can_not_do'],!1);}foreach($ as $){switch($㖧){case 'del':$=$this->sql->get($);if($this->sql->remove($)&& $['name']!=''){del_dir(USER_PATH.$['path'].'/');}break;case 'status_set':$릐=intval($this->in['param']);$this->sql->set(array('user_id',$),array('status',$릐));break;case 'role_set':$=$this->in['param'];섽ŭÃޙĐٞ;if(!$GLOBALS['is_root']&& $=='1'){show_json($this->L['group_role_error'],!1);}$this->sql->set(array('user_id',$),array('role',$));break;case 'group_reset':$Ꮘ=json_decode($this->in['param'],!0);if(!is_array($Ꮘ)){show_json($this->L['error'],!1);}$this->sql->set(array('user_id',$),array('group_info',$Ꮘ));break;case 'group_remove_from':$=$this->in['param'];$=$this->sql->get($);unset($['group_info'][$]);ˡ胜ʒЭӹ’ڡˣę;$this->sql->set($,$);۴иٞʄ;break;case 'group_add':$Ꮘ=json_decode($this->in['param'],!0);Ө᷸՚ƥ։ۢ;if(!is_array($Ꮘ)){show_json($this->L['error'],!1);}$=$this->sql->get($);foreach($Ꮘ as $=>$){$['group_info'][$]=$;ߣ;}$this->sql->set($,$);default:break;ᇽ;}}show_json($this->L['success']);}public function init_install(){$=system_member::load_data();$=$->get();Ï˰⮸ʹב;foreach($ as $=>&$탓){$=hash_path();$this->_initDir($);$탓['path']=$;Ⱥធ˔ߣ񤔴ɻܯ;$탓['create_time']=time();}$->reset($);ԧκɛ֏;$ܘ=explode(',',$this->config['setting_system']['new_group_folder']);ԛȥʈԭ𪦉;$=system_group::load_data();;$=$->get();foreach($ as $=>&$탓){$=hash_path();ђ𱴘҃ѯÄܺЄȷݐΣ𒧎βߔ컊˙Ȋ;$=GROUP_PATH.$.'/';ݗ♀ȦȎ񂫑˘ʓŻՕ苟琚ʞdž愠;foreach($ܘ as $֖){mk_dir($.'home/'.iconv_system($֖));}$탓['path']=$;ߨë;$탓['create_time']=time();␸㡩Ï΅;}$->reset($);}private function _initDir($){$=array('home','recycle','data');ͮʷʛֵҰԊ飹;$DŽ=explode(',',$this->config['setting_system']['new_user_folder']);ʦЉ—ٹ;$=USER_PATH.$.'/';˅׊;foreach($ as $ȸ){mk_dir($.$ȸ);}foreach($DŽ as $ȸ){mk_dir($.'home/'.iconv_system($ȸ));頹ӑʲݩ̷̿;}fileCache::save($.'data/config.php',$this->config['setting_default']);}}