Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions administrator/language/en-GB/plg_healthcheck_usermaintenance.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
; Joomla! Project
; (C) 2026 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8

PLG_HEALTHCHECK_USERMAINTENANCE="HealthCheck - UserMaintenance"
PLG_HEALTHCHECK_USERMAINTENANCE_ACTION_LABEL="Visit the user management"
PLG_HEALTHCHECK_USERMAINTENANCE_CHECKISDEACTIVATED="This check is deactivated in the plugin configuration"
PLG_HEALTHCHECK_USERMAINTENANCE_GETINACTIVE_ERROR="Error while trying to get the number of inactive users"
PLG_HEALTHCHECK_USERMAINTENANCE_GETNEVERLOGGEDIN_ERROR="Error while trying to get the number of never logged-in users"
PLG_HEALTHCHECK_USERMAINTENANCE_GETNONMFA_ERROR="Error while trying to get the number of users without MFA activated"
PLG_HEALTHCHECK_USERMAINTENANCE_GETUNACTIVATED_ERROR="Error while trying to get the number of users who did not finish the activation process"
PLG_HEALTHCHECK_USERMAINTENANCE_GETORPHAN_ERROR="Error while trying to get the number of users without an assigned usergroup"
PLG_HEALTHCHECK_USERMAINTENANCE_GETPRIVILEGED_ERROR="Error while trying to get the number of users with higher privileges"
PLG_HEALTHCHECK_USERMAINTENANCE_GROUP_DESC="The group of this plugin (this value is compared with the group value used in <strong>HealthCheck</strong> modules to inject icons)."
PLG_HEALTHCHECK_USERMAINTENANCE_GROUP_LABEL="Group"
PLG_HEALTHCHECK_USERMAINTENANCE_INACTIVETIMESPAN_DESC="Days since last login to be considered inactive"
PLG_HEALTHCHECK_USERMAINTENANCE_INACTIVETIMESPAN_LABEL="Days since last login"
PLG_HEALTHCHECK_USERMAINTENANCE_INACTIVETIMESPAN_M3="90"
PLG_HEALTHCHECK_USERMAINTENANCE_INACTIVETIMESPAN_M6="180"
PLG_HEALTHCHECK_USERMAINTENANCE_INACTIVETIMESPAN_Y1="360"
PLG_HEALTHCHECK_USERMAINTENANCE_INACTIVE_LISTTEXT="Inactive users"
PLG_HEALTHCHECK_USERMAINTENANCE_INACTIVE_LISTNOTE="Users who did not login in the last few months"
PLG_HEALTHCHECK_USERMAINTENANCE_LOGGING_DESC="How (where) to show any errors"
PLG_HEALTHCHECK_USERMAINTENANCE_LOGGING_LABEL="Error logging"
PLG_HEALTHCHECK_USERMAINTENANCE_LOGGING_VALUE_NOLOG="No logging"
PLG_HEALTHCHECK_USERMAINTENANCE_LOGGING_VALUE_PHPLOG="PHP error log"
PLG_HEALTHCHECK_USERMAINTENANCE_LOGGING_VALUE_JOOMLALOG="Joomla! log"
PLG_HEALTHCHECK_USERMAINTENANCE_LOGGING_VALUE_MESSAGE="Enqueue message"
PLG_HEALTHCHECK_USERMAINTENANCE_MODULE_TITLE="User maintenance"
PLG_HEALTHCHECK_USERMAINTENANCE_MODULE_MESSAGE="This is a list of maintenance and integrity checks on the users of your website."
PLG_HEALTHCHECK_USERMAINTENANCE_NONMFA_LISTTEXT="active users without MFA"
PLG_HEALTHCHECK_USERMAINTENANCE_NONMFA_LISTNOTE="Users (activated) who have not configured MultiFactorAuthentication (MFA)"
PLG_HEALTHCHECK_USERMAINTENANCE_NEVERLOGGEDIN_LISTTEXT="Never logged in users"
PLG_HEALTHCHECK_USERMAINTENANCE_NEVERLOGGEDIN_LISTNOTE="Users who created an account, but never actually logged in"
PLG_HEALTHCHECK_USERMAINTENANCE_ORPHAN_LISTTEXT="Users with no usergroup"
PLG_HEALTHCHECK_USERMAINTENANCE_ORPHAN_LISTNOTE="Users who have no usergroup assigned"
PLG_HEALTHCHECK_USERMAINTENANCE_PRIVILEGED_LISTTEXT="Users with higher privileges"
PLG_HEALTHCHECK_USERMAINTENANCE_PRIVILEGED_LISTNOTE="Users who are granted administrator or super user privileges"
PLG_HEALTHCHECK_USERMAINTENANCE_UNACTIVATED_LISTTEXT="Unactivated users"
PLG_HEALTHCHECK_USERMAINTENANCE_UNACTIVATED_LISTNOTE="Users who created an account, but did not finish the activation process"
PLG_HEALTHCHECK_USERMAINTENANCE_XML_DESCRIPTION="This HealthCheck plugin gives you an oversight about the number of unhealthy user accounts."
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
; Joomla! Project
; (C) 2026 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8

PLG_HEALTHCHECK_USERMAINTENANCE="HealthCheck - UserMaintenance"
PLG_HEALTHCHECK_USERMAINTENANCE_XML_DESCRIPTION="This HealthCheck plugin gives you an oversight about the number of unhealthy user accounts."
49 changes: 49 additions & 0 deletions plugins/healthcheck/usermaintenance/services/provider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

/**
* @package Joomla.Plugin
* @subpackage Healthcheck.UserMaintenance
*
* @copyright (C) 2026 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

use Joomla\CMS\Extension\PluginInterface;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\Database\DatabaseInterface;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;
use Joomla\Plugin\Healthcheck\UserMaintenance\Extension\UserMaintenance;

return new class () implements ServiceProviderInterface {
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
*
* @since __DEPLOY_VERSION__
*/
public function register(Container $container): void
{
$container->set(
PluginInterface::class,
$container->lazy(UserMaintenance::class, function (Container $container) {
$plugin = new UserMaintenance(
(array) PluginHelper::getPlugin('healthcheck', 'usermaintenance')
);

$plugin->setApplication(Factory::getApplication());
$plugin->setDatabase($container->get(DatabaseInterface::class));

return $plugin;
})
);
}
};
Loading
Loading