mirror of https://github.com/joomla/joomla-cms.git
Joomla! 4.4.0 Alpha 1
This commit is contained in:
parent
18a29a6a4d
commit
4f2ae76fed
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE `#__user_mfa` ADD COLUMN `tries` int NOT NULL DEFAULT 0 /** CAN FAIL **/;
|
||||
ALTER TABLE `#__user_mfa` ADD COLUMN `last_try` datetime /** CAN FAIL **/;
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE "#__user_mfa" ADD COLUMN "tries" bigint DEFAULT 0 NOT NULL /** CAN FAIL **/;
|
||||
ALTER TABLE "#__user_mfa" ADD COLUMN "last_try" timestamp without time zone /** CAN FAIL **/;
|
|
@ -88,7 +88,7 @@ class HtmlView extends BaseHtmlView
|
|||
* The ordering list for the categories
|
||||
*
|
||||
* @var array
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $ordering = [];
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ class HtmlView extends BaseHtmlView
|
|||
* Is the vote plugin enabled on the site
|
||||
*
|
||||
* @var boolean
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $vote = false;
|
||||
|
||||
|
@ -96,7 +96,7 @@ class HtmlView extends BaseHtmlView
|
|||
* Are hits being recorded on the site?
|
||||
*
|
||||
* @var boolean
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $hits = false;
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ abstract class PrivacyPlugin extends CMSPlugin
|
|||
*
|
||||
* @var \Joomla\Database\DatabaseDriver
|
||||
* @since 3.9.0
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0 use $this->getDatabase() instead
|
||||
* @deprecated 4.4.0 will be removed in 6.0 use $this->getDatabase() instead
|
||||
*/
|
||||
protected $db;
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ class HtmlView extends BaseHtmlView
|
|||
* The ordering list for the tags
|
||||
*
|
||||
* @var array
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $ordering = [];
|
||||
|
||||
|
|
|
@ -329,6 +329,30 @@
|
|||
default=""
|
||||
showon="mfaredirectonlogin:1"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="mfatrycount"
|
||||
type="number"
|
||||
label="COM_USERS_CONFIG_MFATRYCOUNT_LABEL"
|
||||
filter="integer"
|
||||
min="0"
|
||||
max="20"
|
||||
step="1"
|
||||
default="10"
|
||||
validate="number"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="mfatrytime"
|
||||
type="number"
|
||||
label="COM_USERS_CONFIG_MFATRYTIME_LABEL"
|
||||
filter="integer"
|
||||
min="1"
|
||||
max="24"
|
||||
step="1"
|
||||
default="1"
|
||||
validate="number"
|
||||
/>
|
||||
</fieldset>
|
||||
|
||||
<fieldset
|
||||
|
|
|
@ -153,6 +153,18 @@ class CaptiveController extends BaseController implements UserFactoryAwareInterf
|
|||
throw new RuntimeException(Text::_('COM_USERS_MFA_INVALID_METHOD'), 500);
|
||||
}
|
||||
|
||||
if (!$model->checkTryLimit($record)) {
|
||||
// The try limit is reached, show error and return
|
||||
$captiveURL = Route::_('index.php?option=com_users&view=captive&task=select', false);
|
||||
$message = Text::_('COM_USERS_MFA_TRY_LIMIT_REACHED');
|
||||
$this->setRedirect($captiveURL, $message, 'error');
|
||||
|
||||
$event = new NotifyActionLog('onComUsersCaptiveValidateTryLimitReached');
|
||||
$this->app->getDispatcher()->dispatch($event->getName(), $event);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Validate the code
|
||||
$user = $this->app->getIdentity() ?: $this->getUserFactory()->loadUserById(0);
|
||||
|
||||
|
@ -210,6 +222,8 @@ class CaptiveController extends BaseController implements UserFactoryAwareInterf
|
|||
$jNow = Date::getInstance();
|
||||
|
||||
$record->last_used = $jNow->toSql();
|
||||
$record->tries = 0;
|
||||
$record->last_try = null;
|
||||
$record->store();
|
||||
|
||||
// Flag the user as fully logged in
|
||||
|
|
|
@ -18,6 +18,7 @@ use Joomla\CMS\Language\Text;
|
|||
use Joomla\CMS\MVC\Controller\BaseController as BaseControllerAlias;
|
||||
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
|
||||
use Joomla\CMS\Router\Route;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\CMS\User\User;
|
||||
use Joomla\CMS\User\UserFactoryAwareInterface;
|
||||
use Joomla\CMS\User\UserFactoryAwareTrait;
|
||||
|
@ -205,7 +206,7 @@ class MethodController extends BaseControllerAlias implements UserFactoryAwareIn
|
|||
$redirectUrl = 'index.php?option=com_users&task=method.edit&user_id=' . $userId . '&id=' . $backupCodesRecord->id;
|
||||
$returnURL = $this->input->getBase64('returnurl');
|
||||
|
||||
if (!empty($returnURL)) {
|
||||
if (!empty($returnURL) && Uri::isInternal(base64_decode($returnURL))) {
|
||||
$redirectUrl .= '&returnurl=' . $returnURL;
|
||||
}
|
||||
|
||||
|
@ -260,7 +261,7 @@ class MethodController extends BaseControllerAlias implements UserFactoryAwareIn
|
|||
$url = Route::_('index.php?option=com_users&task=methods.display&user_id=' . $userId, false);
|
||||
$returnURL = $this->input->getBase64('returnurl');
|
||||
|
||||
if (!empty($returnURL)) {
|
||||
if (!empty($returnURL) && Uri::isInternal(base64_decode($returnURL))) {
|
||||
$url = base64_decode($returnURL);
|
||||
}
|
||||
|
||||
|
@ -291,7 +292,7 @@ class MethodController extends BaseControllerAlias implements UserFactoryAwareIn
|
|||
$url = Route::_('index.php?option=com_users&task=methods.display&user_id=' . $userId, false);
|
||||
$returnURL = $this->input->getBase64('returnurl');
|
||||
|
||||
if (!empty($returnURL)) {
|
||||
if (!empty($returnURL) && Uri::isInternal(base64_decode($returnURL))) {
|
||||
$url = base64_decode($returnURL);
|
||||
}
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ class MethodsController extends BaseController implements UserFactoryAwareInterf
|
|||
$url = Route::_('index.php?option=com_users&task=methods.display&user_id=' . $userId, false);
|
||||
$returnURL = $this->input->getBase64('returnurl');
|
||||
|
||||
if (!empty($returnURL)) {
|
||||
if (!empty($returnURL) && Uri::isInternal(base64_decode($returnURL))) {
|
||||
$url = base64_decode($returnURL);
|
||||
}
|
||||
|
||||
|
@ -190,7 +190,7 @@ class MethodsController extends BaseController implements UserFactoryAwareInterf
|
|||
$url = Uri::base();
|
||||
$returnURL = $this->input->getBase64('returnurl');
|
||||
|
||||
if (!empty($returnURL)) {
|
||||
if (!empty($returnURL) && Uri::isInternal(base64_decode($returnURL))) {
|
||||
$url = base64_decode($returnURL);
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace Joomla\Component\Users\Administrator\Model;
|
|||
use Exception;
|
||||
use Joomla\CMS\Application\CMSApplication;
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use Joomla\CMS\Date\Date;
|
||||
use Joomla\CMS\Event\MultiFactor\Captive;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
@ -409,4 +410,43 @@ class CaptiveModel extends BaseDatabaseModel
|
|||
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to check if the mfa method in question has reached it's usage limit
|
||||
*
|
||||
* @param MfaTable $method Mfa method record
|
||||
*
|
||||
* @return boolean true if user can use the method, false if not
|
||||
*
|
||||
* @since 4.4.0
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function checkTryLimit(MfaTable $method)
|
||||
{
|
||||
$params = ComponentHelper::getParams('com_users');
|
||||
$jNow = Date::getInstance();
|
||||
$maxTries = (int) $params->get('mfatrycount', 10);
|
||||
$blockHours = (int) $params->get('mfatrytime', 1);
|
||||
|
||||
$lastTryTime = strtotime($method->last_try) ?: 0;
|
||||
$hoursSinceLastTry = (strtotime(Factory::getDate()->toSql()) - $lastTryTime) / 3600;
|
||||
|
||||
if ($method->last_try !== null && $hoursSinceLastTry > $blockHours) {
|
||||
// If it's been long enough, start a new reset count
|
||||
$method->last_try = null;
|
||||
$method->tries = 0;
|
||||
} elseif ($method->tries < $maxTries) {
|
||||
// If we are under the max count, just increment the counter
|
||||
++$method->tries;
|
||||
$method->last_try = $jNow->toSql();
|
||||
} else {
|
||||
// At this point, we know we have exceeded the maximum resets for the time period
|
||||
return false;
|
||||
}
|
||||
|
||||
// Store changes to try counter and/or the timestamp
|
||||
$method->store();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,8 @@ use Throwable;
|
|||
* @property array $options Configuration options for the MFA Method.
|
||||
* @property string $created_on Date and time the record was created.
|
||||
* @property string $last_used Date and time the record was last used successfully.
|
||||
* @property int $tries Counter for unsuccessful tries
|
||||
* @property string $last_try Date and time of the last unsuccessful try
|
||||
*
|
||||
* @since 4.2.0
|
||||
*/
|
||||
|
|
|
@ -17,6 +17,7 @@ use Joomla\CMS\Toolbar\Button\BasicButton;
|
|||
use Joomla\CMS\Toolbar\Button\LinkButton;
|
||||
use Joomla\CMS\Toolbar\Toolbar;
|
||||
use Joomla\CMS\Toolbar\ToolbarHelper;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\CMS\User\User;
|
||||
use Joomla\Component\Users\Administrator\Model\MethodModel;
|
||||
|
||||
|
@ -168,7 +169,9 @@ class HtmlView extends BaseHtmlView
|
|||
}
|
||||
|
||||
$returnUrl = empty($this->returnURL) ? '' : base64_decode($this->returnURL);
|
||||
$returnUrl = $returnUrl ?: Route::_('index.php?option=com_users&task=methods.display&user_id=' . $this->user->id);
|
||||
$returnUrl = ($returnUrl && Uri::isInternal($returnUrl))
|
||||
? $returnUrl
|
||||
: Route::_('index.php?option=com_users&task=methods.display&user_id=' . $this->user->id);
|
||||
|
||||
if ($this->isAdmin && $this->getLayout() === 'edit') {
|
||||
$button = (new BasicButton('user-mfa-edit-save'))
|
||||
|
|
|
@ -81,6 +81,8 @@ COM_USERS_CONFIG_SAVE_FAILED="An error was encountered while saving the configur
|
|||
COM_USERS_CONFIG_SILENTRESPONSES_DESC="For experts. A comma–separated list of Joomla authentication response types which are considered silent logins. The default is <code>cookie</code> (the Remember Me feature) and <code>passwordless</code> (WebAuthn)."
|
||||
COM_USERS_CONFIG_SILENTRESPONSES_LABEL="Silent login authentication response types (for experts)"
|
||||
COM_USERS_CONFIG_USER_OPTIONS="User Options"
|
||||
COM_USERS_CONFIG_MFATRYCOUNT_LABEL="Maximum MFA tries"
|
||||
COM_USERS_CONFIG_MFATRYTIME_LABEL="MFA limit block time (in hours)"
|
||||
COM_USERS_COUNT_DISABLED_USERS="Blocked Users"
|
||||
COM_USERS_COUNT_ENABLED_USERS="Enabled Users"
|
||||
COM_USERS_DASHBOARD_TITLE="Users Dashboard"
|
||||
|
@ -271,6 +273,7 @@ COM_USERS_MFA_FIRSTTIME_NOTINTERESTED="Don't show this again"
|
|||
COM_USERS_MFA_FIRSTTIME_PAGE_HEAD="Set up your Multi-factor Authentication"
|
||||
COM_USERS_MFA_INVALID_CODE="Multi-factor Authentication failed. Please try again."
|
||||
COM_USERS_MFA_INVALID_METHOD="Invalid Multi-factor Authentication method."
|
||||
COM_USERS_MFA_TRY_LIMIT_REACHED="You have reached the try limit for the currently selected Authentication method. Please choose a different method or wait."
|
||||
COM_USERS_MFA_LBL_CREATEDON="Added: %s"
|
||||
COM_USERS_MFA_LBL_DATE_FORMAT_PAST="F d, Y"
|
||||
COM_USERS_MFA_LBL_DATE_FORMAT_TODAY="H:i"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>English (en-GB)</name>
|
||||
<tag>en-GB</tag>
|
||||
<version>4.4.0</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<metafile client="administrator">
|
||||
<name>English (en-GB)</name>
|
||||
<version>4.4.0</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<authorUrl>www.joomla.org</authorUrl>
|
||||
<copyright>(C) 2019 Open Source Matters, Inc.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
<version>4.4.0-dev</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<version>4.4.0-alpha1</version>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<description>FILES_JOOMLA_XML_DESCRIPTION</description>
|
||||
|
||||
<scriptfile>administrator/components/com_admin/script.php</scriptfile>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>English (en-GB) Language Pack</name>
|
||||
<packagename>en-GB</packagename>
|
||||
<version>4.4.0.1</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>English (en-GB)</name>
|
||||
<tag>en-GB</tag>
|
||||
<version>4.4.0</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<metafile client="api">
|
||||
<name>English (en-GB)</name>
|
||||
<version>4.4.0</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<metafile client="installation">
|
||||
<name>English (United Kingdom)</name>
|
||||
<version>4.4.0</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<copyright>(C) 2005 Open Source Matters, Inc.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
|
|
|
@ -1044,6 +1044,8 @@ CREATE TABLE IF NOT EXISTS `#__user_mfa` (
|
|||
`options` mediumtext NOT NULL,
|
||||
`created_on` datetime NOT NULL,
|
||||
`last_used` datetime,
|
||||
`tries` int NOT NULL DEFAULT 0,
|
||||
`last_try` datetime,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_id` (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci COMMENT='Multi-factor Authentication settings';
|
||||
|
|
|
@ -1065,6 +1065,8 @@ CREATE TABLE IF NOT EXISTS "#__user_mfa" (
|
|||
"options" text NOT NULL,
|
||||
"created_on" timestamp without time zone NOT NULL,
|
||||
"last_used" timestamp without time zone,
|
||||
"tries" bigint DEFAULT 0 NOT NULL,
|
||||
"last_try" timestamp without time zone,
|
||||
PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
|
|
|
@ -77,6 +77,7 @@ COM_USERS_MFA_MANDATORY_NOTICE_BODY="Please enable a Multi-factor Authentication
|
|||
COM_USERS_MFA_MANDATORY_NOTICE_HEAD="Multi-factor Authentication is mandatory for your user account"
|
||||
COM_USERS_MFA_SELECT_PAGE_HEAD="Select a Multi-factor Authentication method"
|
||||
COM_USERS_MFA_USE_DIFFERENT_METHOD="Select a different method"
|
||||
COM_USERS_MFA_TRY_LIMIT_REACHED="You have reached the try limit for the currently selected Authentication method. Please choose a different method or wait."
|
||||
COM_USERS_MFA_VALIDATE="Validate"
|
||||
COM_USERS_OR="or"
|
||||
COM_USERS_PROFILE="User Profile"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<name>English (en-GB)</name>
|
||||
<tag>en-GB</tag>
|
||||
<version>4.4.0</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<metafile client="site">
|
||||
<name>English (en-GB)</name>
|
||||
<version>4.4.0</version>
|
||||
<creationDate>2023-03</creationDate>
|
||||
<creationDate>2023-05</creationDate>
|
||||
<author>Joomla! Project</author>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
|
|
|
@ -13,7 +13,7 @@ defined('_JEXEC') or die;
|
|||
/**
|
||||
* Set the platform root path as a constant if necessary.
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use defined('_JEXEC') or die; to detect if the CMS is loaded correctly
|
||||
**/
|
||||
defined('JPATH_PLATFORM') or define('JPATH_PLATFORM', __DIR__);
|
||||
|
|
|
@ -21,7 +21,7 @@ trigger_error(
|
|||
/**
|
||||
* Set the platform root path as a constant if necessary.
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use defined('_JEXEC') or die; to detect if the CMS is loaded correctly
|
||||
**/
|
||||
if (!defined('JPATH_PLATFORM')) {
|
||||
|
|
|
@ -20,7 +20,7 @@ trigger_error(
|
|||
/**
|
||||
* Set the platform root path as a constant if necessary.
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use defined('_JEXEC') or die; to detect if the CMS is loaded correctly
|
||||
**/
|
||||
if (!defined('JPATH_PLATFORM')) {
|
||||
|
|
|
@ -20,7 +20,7 @@ trigger_error(
|
|||
/**
|
||||
* Set the platform root path as a constant if necessary.
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use defined('_JEXEC') or die; to detect if the CMS is loaded correctly
|
||||
**/
|
||||
if (!defined('JPATH_PLATFORM')) {
|
||||
|
|
|
@ -409,6 +409,8 @@ trait MultiFactorAuthenticationHandler
|
|||
'default' => 0,
|
||||
'created_on' => Date::getInstance()->toSql(),
|
||||
'last_used' => null,
|
||||
'tries' => 0,
|
||||
'try_count' => null,
|
||||
'options' => ['key' => $config['code']],
|
||||
]
|
||||
);
|
||||
|
@ -425,6 +427,8 @@ trait MultiFactorAuthenticationHandler
|
|||
'default' => 0,
|
||||
'created_on' => Date::getInstance()->toSql(),
|
||||
'last_used' => null,
|
||||
'tries' => 0,
|
||||
'try_count' => null,
|
||||
'options' => ['id' => $config['yubikey']],
|
||||
]
|
||||
);
|
||||
|
@ -458,6 +462,8 @@ trait MultiFactorAuthenticationHandler
|
|||
'default' => 0,
|
||||
'created_on' => Date::getInstance()->toSql(),
|
||||
'last_used' => null,
|
||||
'tries' => 0,
|
||||
'try_count' => null,
|
||||
'options' => @json_decode($otep, true),
|
||||
]
|
||||
);
|
||||
|
|
|
@ -51,7 +51,7 @@ abstract class WebApplication extends AbstractWebApplication
|
|||
* @var integer
|
||||
* @since 4.3.0
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0 as this property is not used anymore
|
||||
* @deprecated 4.4.0 will be removed in 6.0 as this property is not used anymore
|
||||
*/
|
||||
public $item_associations;
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ class NotifyActionLog extends AbstractImmutableEvent
|
|||
'onComUsersCaptiveShowSelect',
|
||||
'onComUsersCaptiveValidateFailed',
|
||||
'onComUsersCaptiveValidateInvalidMethod',
|
||||
'onComUsersCaptiveValidateTryLimitReached',
|
||||
'onComUsersCaptiveValidateSuccess',
|
||||
'onComUsersControllerMethodAfterRegenerateBackupCodes',
|
||||
'onComUsersControllerMethodBeforeAdd',
|
||||
|
|
|
@ -52,7 +52,7 @@ class MeterField extends FormField
|
|||
* The min value of the progress bar
|
||||
*
|
||||
* @var int
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $min = 0;
|
||||
|
||||
|
@ -68,7 +68,7 @@ class MeterField extends FormField
|
|||
* The width of the progress bar
|
||||
*
|
||||
* @var string
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $width;
|
||||
|
||||
|
@ -76,7 +76,7 @@ class MeterField extends FormField
|
|||
* The color of the progress bar
|
||||
*
|
||||
* @var string
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $color;
|
||||
|
||||
|
|
|
@ -377,7 +377,7 @@ class MVCFactory implements MVCFactoryInterface, FormFactoryAwareInterface, Site
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private function setUserFactoryOnObject($object): void
|
||||
{
|
||||
|
|
|
@ -226,7 +226,7 @@ class User extends CMSObject
|
|||
* @var integer
|
||||
* @since 4.3.0
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0 as this property is not used anymore
|
||||
* @deprecated 4.4.0 will be removed in 6.0 as this property is not used anymore
|
||||
*/
|
||||
public $aid = null;
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Joomla\CMS\User;
|
|||
/**
|
||||
* Interface to be implemented by classes depending on a user factory.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
interface UserFactoryAwareInterface
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ interface UserFactoryAwareInterface
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function setUserFactory(UserFactoryInterface $factory): void;
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Joomla\CMS\User;
|
|||
/**
|
||||
* Defines the trait for a UserFactoryInterface Aware Class.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
trait UserFactoryAwareTrait
|
||||
{
|
||||
|
@ -24,7 +24,7 @@ trait UserFactoryAwareTrait
|
|||
* UserFactoryInterface
|
||||
*
|
||||
* @var UserFactoryInterface
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private $userFactory;
|
||||
|
||||
|
@ -33,7 +33,7 @@ trait UserFactoryAwareTrait
|
|||
*
|
||||
* @return UserFactoryInterface
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
* @throws \UnexpectedValueException May be thrown if the UserFactory has not been set.
|
||||
*/
|
||||
protected function getUserFactory(): UserFactoryInterface
|
||||
|
@ -52,7 +52,7 @@ trait UserFactoryAwareTrait
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function setUserFactory(UserFactoryInterface $userFactory): void
|
||||
{
|
||||
|
|
|
@ -66,7 +66,7 @@ final class Version
|
|||
* @var string
|
||||
* @since 3.8.0
|
||||
*/
|
||||
public const EXTRA_VERSION = 'dev';
|
||||
public const EXTRA_VERSION = 'alpha1';
|
||||
|
||||
/**
|
||||
* Development status.
|
||||
|
@ -74,7 +74,7 @@ final class Version
|
|||
* @var string
|
||||
* @since 3.5
|
||||
*/
|
||||
public const DEV_STATUS = 'Development';
|
||||
public const DEV_STATUS = 'Alpha';
|
||||
|
||||
/**
|
||||
* Code name.
|
||||
|
@ -90,7 +90,7 @@ final class Version
|
|||
* @var string
|
||||
* @since 3.5
|
||||
*/
|
||||
public const RELDATE = '17-October-2023';
|
||||
public const RELDATE = '30-May-2023';
|
||||
|
||||
/**
|
||||
* Release time.
|
||||
|
|
|
@ -19,7 +19,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The articles archive module service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@ use Joomla\CMS\Helper\HelperFactoryAwareTrait;
|
|||
/**
|
||||
* Dispatcher class for mod_articles_archive
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
|
||||
{
|
||||
|
@ -32,7 +32,7 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData(): array
|
||||
{
|
||||
|
|
|
@ -42,7 +42,7 @@ class ArticlesArchiveHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @return \stdClass[]
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function getArticlesByMonths(Registry $moduleParams, SiteApplication $app): array
|
||||
{
|
||||
|
@ -109,7 +109,7 @@ class ArticlesArchiveHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @since 1.5
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use the non-static method getArticlesByMonths
|
||||
* Example: Factory::getApplication()->bootModule('mod_articles_archive', 'site')
|
||||
* ->getHelper('ArticlesArchiveHelper')
|
||||
|
|
|
@ -19,7 +19,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The articles categories module service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@ use Joomla\CMS\Helper\ModuleHelper;
|
|||
/**
|
||||
* Dispatcher class for mod_articles_categories
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData(): array
|
||||
{
|
||||
|
|
|
@ -39,7 +39,7 @@ class ArticlesCategoriesHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @return CategoryNode[]
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function getChildrenCategories(Registry $moduleParams, SiteApplication $app): array
|
||||
{
|
||||
|
@ -80,7 +80,7 @@ class ArticlesCategoriesHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @since 1.6
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use the non-static method getChildrenCategories
|
||||
* Example: Factory::getApplication()->bootModule('mod_articles_categories', 'site')
|
||||
* ->getHelper('ArticlesCategoriesHelper')
|
||||
|
|
|
@ -19,7 +19,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The articles category module service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@ use Joomla\CMS\Helper\ModuleHelper;
|
|||
/**
|
||||
* Dispatcher class for mod_articles_category
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData(): array
|
||||
{
|
||||
|
|
|
@ -46,7 +46,7 @@ class ArticlesCategoryHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @return object[]
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function getArticles(Registry $params, SiteApplication $app)
|
||||
{
|
||||
|
@ -325,7 +325,7 @@ class ArticlesCategoryHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @since 1.6
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use the non-static method getArticles
|
||||
* Example: Factory::getApplication()->bootModule('mod_articles_category', 'site')
|
||||
* ->getHelper('ArticlesCategoryHelper')
|
||||
|
|
|
@ -19,7 +19,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The breadcrumbs module service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@ use Joomla\CMS\Helper\HelperFactoryAwareTrait;
|
|||
/**
|
||||
* Dispatcher class for mod_breadcrumbs
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
|
||||
{
|
||||
|
@ -32,7 +32,7 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData(): array
|
||||
{
|
||||
|
|
|
@ -36,7 +36,7 @@ class BreadcrumbsHelper
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function getBreadcrumbs(Registry $params, SiteApplication $app): array
|
||||
{
|
||||
|
@ -69,7 +69,7 @@ class BreadcrumbsHelper
|
|||
*
|
||||
* @return object
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function getHomeItem(Registry $params, SiteApplication $app): object
|
||||
{
|
||||
|
@ -97,7 +97,7 @@ class BreadcrumbsHelper
|
|||
*
|
||||
* @since 1.5
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0 as this function is not used anymore
|
||||
* @deprecated 4.4.0 will be removed in 6.0 as this function is not used anymore
|
||||
*/
|
||||
public static function setSeparator($custom = null)
|
||||
{
|
||||
|
@ -128,7 +128,7 @@ class BreadcrumbsHelper
|
|||
*
|
||||
* @since 1.5
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use the non-static method getBreadcrumbs
|
||||
* Example: Factory::getApplication()->bootModule('mod_breadcrumbs', 'site')
|
||||
* ->getHelper('BreadcrumbsHelper')
|
||||
|
@ -149,7 +149,7 @@ class BreadcrumbsHelper
|
|||
*
|
||||
* @since 4.2.0
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use the non-static method getHomeItem
|
||||
* Example: Factory::getApplication()->bootModule('mod_breadcrumbs', 'site')
|
||||
* ->getHelper('BreadcrumbsHelper')
|
||||
|
|
|
@ -18,7 +18,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The module Custom HTML service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -28,7 +28,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ use Joomla\CMS\HTML\HTMLHelper;
|
|||
/**
|
||||
* Dispatcher class for mod_custom
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher
|
||||
{
|
||||
|
@ -29,7 +29,7 @@ class Dispatcher extends AbstractModuleDispatcher
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData()
|
||||
{
|
||||
|
|
|
@ -18,7 +18,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The footer module service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -28,7 +28,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -20,7 +20,7 @@ use Joomla\CMS\HTML\HTMLHelper;
|
|||
/**
|
||||
* Dispatcher class for mod_footer
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher
|
||||
{
|
||||
|
@ -29,7 +29,7 @@ class Dispatcher extends AbstractModuleDispatcher
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData(): array
|
||||
{
|
||||
|
|
|
@ -19,7 +19,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The articles related module service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@ use Joomla\CMS\Helper\ModuleHelper;
|
|||
/**
|
||||
* Dispatcher class for mod_articles_popular
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
|
||||
{
|
||||
|
@ -33,7 +33,7 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData(): array
|
||||
{
|
||||
|
|
|
@ -44,7 +44,7 @@ class RelatedItemsHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @return \stdClass[]
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function getRelatedArticles(Registry $params, SiteApplication $app): array
|
||||
{
|
||||
|
@ -186,7 +186,7 @@ class RelatedItemsHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @since 1.6
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use the non-static method getRelatedArticles
|
||||
* Example: Factory::getApplication()->bootModule('mod_related_items', 'site')
|
||||
* ->getHelper('RelatedItemsHelper')
|
||||
|
|
|
@ -19,7 +19,7 @@ use Joomla\DI\ServiceProviderInterface;
|
|||
/**
|
||||
* The users latest module service provider.
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
return new class () implements ServiceProviderInterface {
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@ use Joomla\CMS\Helper\HelperFactoryAwareTrait;
|
|||
/**
|
||||
* Dispatcher class for mod_users_latest
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
|
||||
{
|
||||
|
@ -32,7 +32,7 @@ class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareI
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected function getLayoutData(): array
|
||||
{
|
||||
|
|
|
@ -38,7 +38,7 @@ class UsersLatestHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @return array The array of users
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function getLatestUsers(Registry $params, SiteApplication $app): array
|
||||
{
|
||||
|
@ -85,7 +85,7 @@ class UsersLatestHelper implements DatabaseAwareInterface
|
|||
*
|
||||
* @since 1.6
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0
|
||||
* @deprecated 4.4.0 will be removed in 6.0
|
||||
* Use the non-static method getLatestUsers
|
||||
* Example: Factory::getApplication()->bootModule('mod_users_latest', 'site')
|
||||
* ->getHelper('UsersLatestHelper')
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -29,7 +29,7 @@ final class Vote extends CMSPlugin
|
|||
*
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @deprecated __DEPLOY_VERSION__ will be removed in 6.0 as it is there only for layout overrides
|
||||
* @deprecated 4.4.0 will be removed in 6.0 as it is there only for layout overrides
|
||||
* Use getApplication() instead
|
||||
*/
|
||||
protected $app;
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
|
|
|
@ -27,7 +27,7 @@ use Joomla\Module\Quickicon\Administrator\Event\QuickIconsEvent;
|
|||
/**
|
||||
* Joomla! end of support notification plugin
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
final class Eos extends CMSPlugin implements SubscriberInterface
|
||||
{
|
||||
|
@ -37,7 +37,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
* The EOS date for 4.4.
|
||||
*
|
||||
* @var string
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private const EOS_DATE = '2025-10-17';
|
||||
|
||||
|
@ -45,7 +45,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
* Load the language file on instantiation.
|
||||
*
|
||||
* @var bool
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
protected $autoloadLanguage = false;
|
||||
|
||||
|
@ -53,7 +53,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
* Holding the current valid message to be shown.
|
||||
*
|
||||
* @var array
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private $currentMessage = [];
|
||||
|
||||
|
@ -61,7 +61,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
* Are the messages initialized.
|
||||
*
|
||||
* @var bool
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
|
||||
private $messagesInitialized = false;
|
||||
|
@ -71,7 +71,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public static function getSubscribedEvents(): array
|
||||
{
|
||||
|
@ -92,7 +92,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
|
@ -156,7 +156,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return bool
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private function saveParams(): bool
|
||||
{
|
||||
|
@ -178,7 +178,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return bool
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
|
@ -202,7 +202,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return array An array with the message to be displayed or false
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private function getMessageInfo(int $monthsUntilEOS, int $inverted): array
|
||||
{
|
||||
|
@ -284,7 +284,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return bool
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
|
@ -298,7 +298,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return string
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*
|
||||
* @throws Notallowed If user is not allowed
|
||||
*
|
||||
|
@ -329,7 +329,7 @@ final class Eos extends CMSPlugin implements SubscriberInterface
|
|||
*
|
||||
* @return array
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private function setMessage(): array
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -98,7 +98,7 @@ final class LanguageFilter extends CMSPlugin
|
|||
*
|
||||
* @var LanguageFactoryInterface
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
private $languageFactory;
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -26,7 +26,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
|
@ -27,7 +27,7 @@ return new class () implements ServiceProviderInterface {
|
|||
*
|
||||
* @return void
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
* @since 4.4.0
|
||||
*/
|
||||
public function register(Container $container): void
|
||||
{
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue