diff --git a/classes/cache/CacheHandler.class.php b/classes/cache/CacheHandler.class.php index 7e5417d85..a3740b8ec 100644 --- a/classes/cache/CacheHandler.class.php +++ b/classes/cache/CacheHandler.class.php @@ -125,6 +125,7 @@ class CacheHandler extends Handler { return true; } + return false; } @@ -137,6 +138,7 @@ class CacheHandler extends Handler function getCacheKey($key) { $key = str_replace('/', ':', $key); + return __XE_VERSION__ . ':' . $key; } @@ -150,11 +152,13 @@ class CacheHandler extends Handler */ function get($key, $modified_time = 0) { - $key = $this->getCacheKey($key); if(!$this->handler) { return false; } + + $key = $this->getCacheKey($key); + return $this->handler->get($key, $modified_time); } @@ -170,13 +174,13 @@ class CacheHandler extends Handler */ function put($key, $obj, $valid_time = 0) { - if(!$key) return false; - - $key = $this->getCacheKey($key); - if(!$this->handler) + if(!$this->handler && !$key) { return false; } + + $key = $this->getCacheKey($key); + return $this->handler->put($key, $obj, $valid_time); } @@ -188,11 +192,13 @@ class CacheHandler extends Handler */ function delete($key) { - $key = $this->getCacheKey($key); if(!$this->handler) { return false; } + + $key = $this->getCacheKey($key); + return $this->handler->delete($key); } @@ -206,11 +212,13 @@ class CacheHandler extends Handler */ function isValid($key, $modified_time) { - $key = $this->getCacheKey($key); if(!$this->handler) { return false; } + + $key = $this->getCacheKey($key); + return $this->handler->isValid($key, $modified_time); } @@ -225,6 +233,7 @@ class CacheHandler extends Handler { return false; } + return $this->handler->truncate(); } diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index 11e0c2295..5eceea730 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -823,6 +823,7 @@ class memberAdminController extends member { $args->denied = $var->denied; $output = executeQuery('member.updateMemberDeniedInfo', $args); + $this->_clearMemberCache($args->member_srl); if(!$output->toBool()) { $oDB->rollback(); @@ -938,6 +939,9 @@ class memberAdminController extends member } } $oDB->commit(); + + $this->_deleteMemberGroupCache() + $this->setMessage('success_updated'); if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 5ef28b662..ba8785362 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -107,6 +107,8 @@ class memberController extends member if($config->after_logout_url) $output->redirect_url = $config->after_logout_url; + $this->_clearMemberCache($args->member_srl); + return $output; } @@ -380,6 +382,8 @@ class memberController extends member } } + $this->_clearMemberCache($args->member_srl); + $this->setRedirectUrl($returnUrl); } @@ -523,8 +527,12 @@ class memberController extends member // Save Signature $signature = Context::get('signature'); $this->putSignature($args->member_srl, $signature); + // Get user_id information $this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl); + + $this->_clearMemberCache($args->member_srl); + // Call a trigger after successfully log-in (after) $trigger_output = ModuleHandler::triggerCall('member.procMemberModifyInfo', 'after', $this->memberInfo); if(!$trigger_output->toBool()) return $trigger_output; @@ -556,7 +564,7 @@ class memberController extends member $oMemberModel = getModel('member'); // Get information of member_srl $columnList = array('member_srl', 'password'); - + // check password strength $config = $oMemberModel->getMemberConfig(); if(!$oMemberModel->checkPasswordStrength($password, $config->password_strength)) @@ -564,8 +572,7 @@ class memberController extends member $message = Context::getLang('about_password_strength'); return new Object(-1, $message[$config->password_strength]); } - - + $member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList); // Verify the cuttent password if(!$oMemberModel->isValidPassword($member_info->password, $current_password, $member_srl)) return new Object(-1, 'invalid_password'); @@ -619,6 +626,8 @@ class memberController extends member // Return success message $this->setMessage('success_leaved'); + $this->_clearMemberCache($member_srl); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); $this->setRedirectUrl($returnUrl); } @@ -1071,6 +1080,9 @@ class memberController extends member if(!$output->toBool()) return $this->stop($output->getMessage()); // Remove all values having the member_srl from authentication table executeQuery('member.deleteAuthMail',$args); + + $this->_clearMemberCache($args->member_srl); + // Notify the result Context::set('is_register', $is_register); $this->setTemplatePath($this->module_path.'tpl'); @@ -1251,6 +1263,7 @@ class memberController extends member list($args->email_id, $args->email_host) = explode('@', $newEmail); $output = executeQuery('member.updateMemberEmailAddress', $args); + $this->_clearMemberCache($args->member_srl); if(!$output->toBool()) { return $this->stop($output->getMessage()); @@ -1367,6 +1380,7 @@ class memberController extends member $output = executeQuery('member.deleteMembersGroup', $args); if(!$output->toBool()) return $output; $this->setMessage('success_deleted'); + $this->_clearMemberCache($args->member_srl); } /** @@ -1467,18 +1481,13 @@ class memberController extends member $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { - $object_key = 'member_groups:' . getNumberingPath($args->member_srl) . $args->member_srl . '_'.$args->site_srl; - $cache_key = $oCacheHandler->getGroupKey('member', $object_key); - $oCacheHandler->delete($cache_key); + $oCacheHandler->invalidateGroupKey('member'); } $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) { - - $object_key = 'member_info:' . getNumberingPath($args->member_srl) . $args->member_srl; - $cache_key = $oCacheHandler->getGroupKey('member', $object_key); - $oCacheHandler->delete($cache_key); + $oCacheHandler->invalidateGroupKey('member'); } return $output; @@ -1519,24 +1528,9 @@ class memberController extends member $output = executeQuery('member.addMemberToGroup', $obj); if(!$output->toBool()) return $output; - $oCacheHandler = CacheHandler::getInstance('object', null, true); - if($oCacheHandler->isSupport()) - { - $object_key = 'member_groups:' . getNumberingPath($args->member_srl) . $args->member_srl . '_' . $args->site_srl; - $cache_key = $oCacheHandler->getGroupKey('member', $object_key); - $oCacheHandler->delete($cache_key); - } - - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $object_key = 'member_info:' . getNumberingPath($args->member_srl) . $args->member_srl; - $cache_key = $oCacheHandler->getGroupKey('member', $object_key); - $oCacheHandler->delete($cache_key); - } + $this->_clearMemberCache($args->member_srl); } - return new Object(); } @@ -1713,6 +1707,8 @@ class memberController extends member $args->member_srl = $this->memberInfo->member_srl; $output = executeQuery('member.updateLastLogin', $args); + $this->_clearMemberCache($args->member_srl); + // Check if there is recoding table. $oDB = &DB::getInstance(); if($oDB->isTableExists('member_count_history') && $config->enable_login_fail_report != 'N') @@ -2099,6 +2095,7 @@ class memberController extends member if(!$args->birthday) $args->birthday = ''; $output = executeQuery('member.updateMember', $args); + $this->_clearMemberCache($args->member_srl); if(!$output->toBool()) { $oDB->rollback(); @@ -2147,6 +2144,8 @@ class memberController extends member $oDB->commit(); + $this->_clearMemberCache($args->member_srl); + //remove from cache $oCacheHandler = CacheHandler::getInstance('object'); if($oCacheHandler->isSupport()) @@ -2170,14 +2169,6 @@ class memberController extends member function updateMemberPassword($args) { $output = executeQuery('member.updateChangePasswordDate', $args); - //remove from cache - $oCacheHandler = CacheHandler::getInstance('object'); - if($oCacheHandler->isSupport()) - { - $object_key = 'member_info:' . getNumberingPath($args->member_srl) . $args->member_srl; - $cache_key = $oCacheHandler->getGroupKey('member', $object_key); - $oCacheHandler->delete($cache_key); - } if($args->password) { @@ -2195,7 +2186,11 @@ class memberController extends member $args->password = $args->hashed_password; } - return executeQuery('member.updateMemberPassword', $args); + $output = executeQuery('member.updateMemberPassword', $args);; + + $this->_clearMemberCache($args->member_srl); + + return $output; } /** @@ -2577,7 +2572,11 @@ class memberController extends member $args->description .= Context::getLang('cmd_spammer') . "[" . date("Y-m-d H:i:s") . " from:" . $logged_info->user_id . " info:" . $spam_description . " docuemnts count:" . $total_count . "]"; - return $this->updateMember($args, true); + $output = $this->updateMember($args, true); + + $this->_clearMemberCache($args->member_srl); + + return $output; } /** @@ -2622,6 +2621,17 @@ class memberController extends member return array(); } + + function _clearMemberCache($member_srl) + { + $oCacheHandler = CacheHandler::getInstance('object'); + if($oCacheHandler->isSupport()) + { + $object_key = 'member_info:' . getNumberingPath($member_srl) . $member_srl; + $cache_key = $oCacheHandler->getGroupKey('member', $object_key); + $oCacheHandler->delete($cache_key); + } + } } /* End of file member.controller.php */ /* Location: ./modules/member/member.controller.php */ diff --git a/modules/module/module.model.php b/modules/module/module.model.php index 0037058b9..91c061d23 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -218,7 +218,7 @@ class moduleModel extends module $module_srl = $oCacheHandler->get($module_srl_cache_key); if($module_srl) { - $object_key = 'module_info:' . $module_srl; + $object_key = 'mid_info:' . $module_srl; $module_info_cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $module_info = $oCacheHandler->get($module_info_cache_key); } @@ -232,7 +232,7 @@ class moduleModel extends module { $oCacheHandler->put($module_srl_cache_key, $module_info->module_srl); - $object_key = 'module_info:' . $module_info->module_srl; + $object_key = 'mid_info:' . $module_info->module_srl; $module_info_cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $oCacheHandler->put($module_info_cache_key, $module_info); } @@ -316,7 +316,7 @@ class moduleModel extends module $module_srl = $oCacheHandler->get($module_srl_cache_key); if($module_srl) { - $object_key = 'module_info:' . $module_srl; + $object_key = 'mid_info:' . $module_srl; $module_info_cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $coutput = $oCacheHandler->get($module_info_cache_key); } @@ -325,7 +325,7 @@ class moduleModel extends module { $oCacheHandler->put($module_srl_cache_key, $output->data->module_srl); - $object_key = 'module_info:' . $output->data->module_srl; + $object_key = 'mid_info:' . $output->data->module_srl; $module_info_cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $oCacheHandler->put($module_info_cache_key, $moduleInfo); } @@ -359,7 +359,7 @@ class moduleModel extends module $oCacheHandler = CacheHandler::getInstance('object', null, true); if($oCacheHandler->isSupport()) { - $object_key = 'module_info:' . $module_srl; + $object_key = 'mid_info:' . $module_srl; $cache_key = $oCacheHandler->getGroupKey('site_and_module', $object_key); $mid_info = $oCacheHandler->get($cache_key); }