From 0c85b390e342d167e8b9a504116ae319b8c04ef9 Mon Sep 17 00:00:00 2001 From: Vinayak Patil Date: Wed, 22 Feb 2023 15:24:03 +0530 Subject: [PATCH] Issue #62,#122 and Joomla 4 compatibility --- code/admin/controllers/keys.php | 5 +++-- code/admin/language/en-GB/en-GB.com_api.ini | 2 +- code/admin/tables/log.php | 3 ++- code/site/libraries/authentication/user.php | 3 +-- code/site/libraries/plugin.php | 16 +++++----------- 5 files changed, 12 insertions(+), 17 deletions(-) diff --git a/code/admin/controllers/keys.php b/code/admin/controllers/keys.php index 7c7baaf..fe43358 100644 --- a/code/admin/controllers/keys.php +++ b/code/admin/controllers/keys.php @@ -12,6 +12,7 @@ use Joomla\CMS\MVC\Controller\AdminController; use Joomla\CMS\MVC\Model\BaseDatabaseModel; use Joomla\CMS\Factory; +use Joomla\Utilities\ArrayHelper; /** * Keys list controller class. @@ -52,8 +53,8 @@ public function saveOrderAjax() $order = $input->post->get('order', array(), 'array'); // Sanitize the input - JArrayHelper::toInteger($pks); - JArrayHelper::toInteger($order); + ArrayHelper::toInteger($pks); + ArrayHelper::toInteger($order); // Get the model $model = $this->getModel(); diff --git a/code/admin/language/en-GB/en-GB.com_api.ini b/code/admin/language/en-GB/en-GB.com_api.ini index e959ddb..4f3d4ad 100644 --- a/code/admin/language/en-GB/en-GB.com_api.ini +++ b/code/admin/language/en-GB/en-GB.com_api.ini @@ -97,7 +97,7 @@ COM_API_CONFIG_ALLOW_HEADER_DESC="Add comma separated values for Access-Control- COM_API_FILTER_DESC="Searches in User name, hash, Request URL, POST Data.
uid:number searches logs for a particular user" UNASSIGNED_HASH="No user for this API Key" -COM_API_CONFIG_IPS_DESC="Ristrict APIs to specific IP address" +COM_API_CONFIG_IPS_DESC="List of IPs for which to allow API access. Put an asterisk (*) to allow API access from all IPs. Alternately put a comma separated list of IPs Ex. 192.168.1.1, 192.168.1.10 or IP Range Ex. 192.168.1.1-192.168.1.10 or CIDR Block Ex. 192.168.1.1/24" COM_API_CONFIG_IPS_LBL="IP Address/IP Range/CIDR Block" COM_API_CONFIG_REQ_LT_LBL="Rate Frequency" COM_API_CONFIG_REQ_LT_DESC="Request limit frequency" diff --git a/code/admin/tables/log.php b/code/admin/tables/log.php index 765abb9..6561339 100644 --- a/code/admin/tables/log.php +++ b/code/admin/tables/log.php @@ -14,6 +14,7 @@ use Joomla\CMS\Factory; use Joomla\Registry\Registry; use Joomla\CMS\Access\Access; +use Joomla\Utilities\ArrayHelper; /** * Log Table class @@ -138,7 +139,7 @@ public function store($updateNulls = false) { if (is_array($this->post_data)) { - $this->post_data = JArrayHelper::toString($this->post_data, '=', '&'); + $this->post_data = ArrayHelper::toString($this->post_data, '=', '&'); } return parent::store($updateNulls = false); diff --git a/code/site/libraries/authentication/user.php b/code/site/libraries/authentication/user.php index b7c0841..25dd270 100755 --- a/code/site/libraries/authentication/user.php +++ b/code/site/libraries/authentication/user.php @@ -29,8 +29,7 @@ public function authenticate() //$username = Factory::getApplication()->input->get( 'username' ); //$password = Factory::getApplication()->input->get( 'password' ); - $user = $this->loadUserByCredentials( $username, $password ); - + $user = $this->loadUserByCredentials( $username, $password ); // Remove username and password from request for when it gets logged $uri = Factory::getURI(); $uri->delVar('username'); diff --git a/code/site/libraries/plugin.php b/code/site/libraries/plugin.php index 4e1fef9..b02e514 100755 --- a/code/site/libraries/plugin.php +++ b/code/site/libraries/plugin.php @@ -377,32 +377,26 @@ final private function checkRequestLimit() return true; } - $hash = $app->input->get('key', '', 'STRING'); - $ip_address = $app->input->server->get('REMOTE_ADDR', '', 'STRING'); - + $hash = $app->input->get('key', '', 'STRING'); $time = $this->params->get('request_limit_time', 'hour'); $now = Factory::getDate(); switch ($time) { - case 'day': - $offset = 60 * 60 * 24; + case 'day': $now->modify('-1 day'); break; - case 'minute': - $offset = 60; + case 'minute': $now->modify('-1 minute'); break; case 'hour': - default: - $offset = 60 * 60; + default: $now->modify('-1 hour'); break; } - $query_time = $now->toSql(); - + $query_time = $now->toSql(); $db = Factory::getDBO(); $query = $db->getQuery(true); $query->select('COUNT(*)');