239 lines
7.1 KiB
PHP
239 lines
7.1 KiB
PHP
<?php
|
|
/**
|
|
* Custom Alerts for WP 2FA plugin.
|
|
*
|
|
* Class file for alert manager.
|
|
*
|
|
* @since 5.0.0
|
|
*
|
|
* @package wsal
|
|
* @subpackage wsal-wp-2fa
|
|
*/
|
|
|
|
// phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment
|
|
// phpcs:disable WordPress.WP.I18n.UnorderedPlaceholdersText
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace WSAL\WP_Sensors\Alerts;
|
|
|
|
use WSAL\MainWP\MainWP_Addon;
|
|
use WSAL\WP_Sensors\Helpers\WP_2FA_Helper;
|
|
|
|
// Exit if accessed directly.
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
if ( ! class_exists( '\WSAL\WP_Sensors\Alerts\WP_2FA_Custom_Alerts' ) ) {
|
|
|
|
/**
|
|
* Custom sensor for WP 2FA plugin.
|
|
*
|
|
* @since 5.0.0
|
|
*/
|
|
class WP_2FA_Custom_Alerts {
|
|
|
|
/**
|
|
* Returns the structure of the alerts for extension.
|
|
*
|
|
* @return array - Currentl registered alers.
|
|
*
|
|
* @since 5.0.0
|
|
*/
|
|
public static function get_custom_alerts(): array {
|
|
// phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment
|
|
if ( WP_2FA_Helper::is_wp2fa_active() || MainWP_Addon::check_mainwp_plugin_active() ) {
|
|
return array(
|
|
esc_html__( 'WP 2FA', 'wp-security-audit-log' ) => array(
|
|
esc_html__( 'WP 2FA Settings', 'wp-security-audit-log' ) =>
|
|
self::get_settings_changes_array(),
|
|
esc_html__( '2FA', 'wp-security-audit-log' ) => self::get_2fa_changes_array(),
|
|
),
|
|
);
|
|
}
|
|
|
|
return array();
|
|
}
|
|
|
|
/**
|
|
* Returns array with all the events attached to the sensor (if there are different types of events, that method will merge them into one array - the events ids will be uses as keys)
|
|
*
|
|
* @return array - Modified array of alerts.
|
|
*
|
|
* @since 5.0.0
|
|
*/
|
|
public static function get_alerts_array(): array {
|
|
return self::get_settings_changes_array() +
|
|
self::get_2fa_changes_array();
|
|
}
|
|
|
|
/**
|
|
* Returns the array with 2FA changes alerts
|
|
*
|
|
* @return array - Our array of alerts.
|
|
*
|
|
* @since 5.0.0
|
|
*/
|
|
private static function get_2fa_changes_array(): array {
|
|
return array(
|
|
7808 => array(
|
|
7808,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'A WP 2FA user configured a method', 'wp-security-audit-log' ),
|
|
__( 'Configured the 2FA method %method%.', 'wp-security-audit-log' ),
|
|
array(),
|
|
wsaldefaults_build_links( array( 'EditUserLink' ) ),
|
|
'2fa',
|
|
'enabled',
|
|
),
|
|
7809 => array(
|
|
7809,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'A WP 2FA user policy was enabled / disabled a method', 'wp-security-audit-log' ),
|
|
__( 'Changed the 2FA method to %new_method%.', 'wp-security-audit-log' ),
|
|
array(
|
|
esc_html__( 'Previous method', 'wp-security-audit-log' ) => '%old_method%',
|
|
),
|
|
wsaldefaults_build_links( array( 'EditUserLink' ) ),
|
|
'2fa',
|
|
'enabled',
|
|
),
|
|
7810 => array(
|
|
7810,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'A WP 2FA user is no longer using 2FA', 'wp-security-audit-log' ),
|
|
__( 'Removed the configure 2FA method. User is no longer using 2FA.', 'wp-security-audit-log' ),
|
|
array(
|
|
esc_html__( 'Previous configured 2FA method', 'wp-security-audit-log' ) => '%old_method%',
|
|
),
|
|
wsaldefaults_build_links( array( 'EditUserLink' ) ),
|
|
'2fa',
|
|
'disabled',
|
|
),
|
|
7811 => array(
|
|
7811,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'A WP 2FA User has been locked for not configuring 2FA', 'wp-security-audit-log' ),
|
|
__( 'The user has been locked by WP 2FA for not configuring 2FA. The website administrators can unlock the user from the Users page in wordPress.', 'wp-security-audit-log' ),
|
|
array(),
|
|
wsaldefaults_build_links( array( 'EditUserLink' ) ),
|
|
'2fa',
|
|
'blocked',
|
|
),
|
|
7812 => array(
|
|
7812,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'A WP 2FA User has been unblocked', 'wp-security-audit-log' ),
|
|
__( 'The user %user% which was blocked by WP 2FA was unblocked. The user can proceed to log in and configure 2FA.', 'wp-security-audit-log' ),
|
|
array(),
|
|
wsaldefaults_build_links( array( 'EditUserLink' ) ),
|
|
'2fa',
|
|
'unblocked',
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Returns the array with 2FA settings changes alerts
|
|
*
|
|
* @return array - Our array of alerts.
|
|
*
|
|
* @since 5.0.0
|
|
*/
|
|
private static function get_settings_changes_array(): array {
|
|
return array(
|
|
7800 => array(
|
|
7800,
|
|
WSAL_HIGH,
|
|
esc_html__( 'WP 2FA Enforcement policy updated', 'wp-security-audit-log' ),
|
|
__( 'Has set the 2FA policies to %new_policy%.', 'wp-security-audit-log' ),
|
|
array(),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'enabled',
|
|
),
|
|
7801 => array(
|
|
7801,
|
|
WSAL_CRITICAL,
|
|
esc_html__( 'WP 2FA enforcement policies have been disabled', 'wp-security-audit-log' ),
|
|
__( 'The 2FA policies have been disabled so 2FA is not enforced on any user or user role. Any user can configure and use 2FA, but it is optional.', 'wp-security-audit-log' ),
|
|
array(),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'disabled',
|
|
),
|
|
7802 => array(
|
|
7802,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'WP 2FA enforcement list was modified', 'wp-security-audit-log' ),
|
|
__( 'Changed the list of %changed_list% on which 2FA is enforced.', 'wp-security-audit-log' ),
|
|
array(
|
|
esc_html__( 'Previous list', 'wp-security-audit-log' ) => '%old_list%',
|
|
esc_html__( 'New list', 'wp-security-audit-log' ) => '%new_list%',
|
|
),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'modified',
|
|
),
|
|
7803 => array(
|
|
7803,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'WP 2FA exclusion list was modified', 'wp-security-audit-log' ),
|
|
__( 'Changed the list of %changed_list% on which 2FA is excluded.', 'wp-security-audit-log' ),
|
|
array(
|
|
esc_html__( 'Previous list', 'wp-security-audit-log' ) => '%old_list%',
|
|
esc_html__( 'New list', 'wp-security-audit-log' ) => '%new_list%',
|
|
),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'modified',
|
|
),
|
|
7804 => array(
|
|
7804,
|
|
WSAL_INFORMATIONAL,
|
|
esc_html__( 'WP 2FA Enforcement policy updated', 'wp-security-audit-log' ),
|
|
__( 'The 2FA method %method%.', 'wp-security-audit-log' ),
|
|
array(),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'enabled',
|
|
),
|
|
7805 => array(
|
|
7805,
|
|
WSAL_INFORMATIONAL,
|
|
esc_html__( 'WP 2FA Trusted device was enabled / disabled', 'wp-security-audit-log' ),
|
|
__( 'The Trusted devices (Remember this device) feature in WP 2FA.', 'wp-security-audit-log' ),
|
|
array(),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'enabled',
|
|
),
|
|
7806 => array(
|
|
7806,
|
|
WSAL_INFORMATIONAL,
|
|
esc_html__( 'WP 2FA trusted device remember length modified', 'wp-security-audit-log' ),
|
|
__( 'The duration for how long should a trusted device be remembered.', 'wp-security-audit-log' ),
|
|
array(
|
|
esc_html__( 'Previous setting', 'wp-security-audit-log' ) => '%old_value%',
|
|
esc_html__( 'New settings', 'wp-security-audit-log' ) => '%new_value%',
|
|
),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'modified',
|
|
),
|
|
7807 => array(
|
|
7807,
|
|
WSAL_MEDIUM,
|
|
esc_html__( 'WP 2FA require password resets on unblock was enabled / disabled', 'wp-security-audit-log' ),
|
|
__( 'The setting <strong>require 2FA for password resets.</strong>', 'wp-security-audit-log' ),
|
|
array(),
|
|
array(),
|
|
'wp-2fa-settings',
|
|
'modified',
|
|
),
|
|
);
|
|
}
|
|
}
|
|
}
|