diff --git a/library/CM/Maintenance/Cli.php b/library/CM/Maintenance/Cli.php index b31b1090f..3d412bec3 100644 --- a/library/CM/Maintenance/Cli.php +++ b/library/CM/Maintenance/Cli.php @@ -47,7 +47,7 @@ protected function _registerCallbacks() { CM_SVM_Model::deleteOldTrainings(3000); }, 'CM_Paging_Ip_Blocked::deleteOlder' => function () { - CM_Paging_Ip_Blocked::deleteOlder(7 * 86400); + CM_Paging_Ip_Blocked::deleteOld(); }, 'CM_Captcha::deleteOlder' => function () { CM_Captcha::deleteOlder(3600); diff --git a/library/CM/Paging/Ip/Blocked.php b/library/CM/Paging/Ip/Blocked.php index 4e7dcc143..552a426d9 100644 --- a/library/CM/Paging/Ip/Blocked.php +++ b/library/CM/Paging/Ip/Blocked.php @@ -24,11 +24,14 @@ public function remove($ip) { CM_Db_Db::delete('cm_ipBlocked', array('ip' => $ip)); } + public static function deleteOld() { + CM_Db_Db::delete('cm_ipBlocked', '`createStamp` < ' . (time() - self::_getMaxAge())); + } + /** - * @param int $age + * @return int */ - public static function deleteOlder($age) { - $age = (int) $age; - CM_Db_Db::delete('cm_ipBlocked', '`createStamp` < ' . (time() - $age)); + protected static function _getMaxAge() { + return (int) self::_getConfig()->maxAge; } } diff --git a/resources/config/default.php b/resources/config/default.php index e8627d59f..8723779ff 100644 --- a/resources/config/default.php +++ b/resources/config/default.php @@ -31,6 +31,8 @@ array('host' => 'localhost', 'port' => 11211), ); + $config->CM_Paging_Ip_Blocked->maxAge = (7 * 86400); + $config->classConfigCacheEnabled = true; $config->CM_Stream_Message->enabled = true; @@ -105,11 +107,11 @@ 'class' => 'CM_Db_Client', 'arguments' => array( array( - 'host' => 'localhost', - 'port' => 3306, - 'username' => 'root', - 'password' => '', - 'db' => 'cm', + 'host' => 'localhost', + 'port' => 3306, + 'username' => 'root', + 'password' => '', + 'db' => 'cm', ) ) ); diff --git a/tests/library/CM/Paging/Ip/BlockedTest.php b/tests/library/CM/Paging/Ip/BlockedTest.php index 283e6ac81..0ba4efc5b 100644 --- a/tests/library/CM/Paging/Ip/BlockedTest.php +++ b/tests/library/CM/Paging/Ip/BlockedTest.php @@ -3,8 +3,10 @@ class CM_Paging_Ip_BlockedTest extends CMTest_TestCase { public function testAdd() { + CM_Config::get()->CM_Paging_Ip_Blocked->maxAge = (3 * 86400); $ip = '127.0.0.1'; $ip2 = '127.0.0.2'; + $paging = new CM_Paging_Ip_Blocked(); $paging->add(ip2long($ip)); $this->assertEquals(1, $paging->getCount()); @@ -16,12 +18,12 @@ public function testAdd() { $paging->_change(); $this->assertEquals(2, $paging->getCount()); CMTest_TH::timeDaysForward(2); - CM_Paging_Ip_Blocked::deleteOlder(3 * 86400); + CM_Paging_Ip_Blocked::deleteOld(); CM_Cache_Local::getInstance()->flush(); $paging->_change(); $this->assertEquals(1, $paging->getCount()); CMTest_TH::timeDaysForward(2); - CM_Paging_Ip_Blocked::deleteOlder(3 * 86400); + CM_Paging_Ip_Blocked::deleteOld(); CM_Cache_Local::getInstance()->flush(); $this->assertEquals(1, $paging->getCount()); $paging->_change();