PK �MFZ�"3z�� �� config/menu.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
function rsssl_menu() {
if ( ! rsssl_user_can_manage() ) {
return [];
}
$menu_items = [
[
"id" => "dashboard",
"title" => __( "Dashboard", 'really-simple-ssl' ),
'default_hidden' => false,
'menu_items' => [],
],
[
"id" => "settings",
"title" => __( "Settings", 'really-simple-ssl' ),
'default_hidden' => false,
'menu_items' => [
[
'id' => 'general',
'group_id' => 'general',
'title' => __( 'General', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-our-general-settings',
'groups' => [
[
'id' => 'general_settings',
'group_id' => 'general_settings',
'title' => __( 'General', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-our-general-settings',
],
[
'id' => 'general_email',
'group_id' => 'general_email',
'title' => __( 'Email', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-our-general-settings',
],
[
'id' => 'general_captcha',
'group_id' => 'general_captcha',
'title' => __( 'Captcha', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-our-general-settings',
'premium' => true,
'premium_title' => __( 'Captcha', 'really-simple-ssl' ),
'intro' => __( "Really Simple Security can trigger a Captcha to limit access to your site or the login form.", 'really-simple-ssl' ),
'premium_text' => __( 'Protect your website against brute-force attacks with a captcha. Choose between Google reCAPTCHA or hCaptcha.', 'really-simple-ssl' ),
],
[
'id' => 'support',
'group_id' => 'support',
'title' => __('Premium Support', 'really-simple-ssl'),
'intro' => __('The following information is attached when you send this form: license key, scan results, your domain, .htaccess file, debug log and a list of active plugins.', 'really-simple-ssl'),
'premium' => true,
'premium_text' => __("Elevate your security with our Premium Support! Our expert team ensures simple, hassle-free assistance whenever you need it.", 'really-simple-ssl'),
'premium_title' => __('Why Premium Support?', 'really-simple-ssl'),
'helpLink' => 'instructions/debugging',
'helpLink_text' => __('Debugging with Really Simple Security', "really-simple-ssl"),
],
],
],
[
'id' => 'encryption',
'title' => 'SSL',
'groups' => [
[
'id' => 'encryption_lets_encrypt',
'group_id' => 'encryption_lets_encrypt',
'title' => __( 'Let\'s Encrypt', 'really-simple-ssl' ),
'intro' => __( 'Let\'s Encrypt.', 'really-simple-ssl' ),
'helpLink' => 'about-lets-encrypt',
'directLink' => rsssl_letsencrypt_wizard_url(),
],
[
'id' => 'encryption_redirect',
'group_id' => 'encryption_redirect',
'title' => __( 'Redirection', 'really-simple-ssl' ),
'helpLink' => 'remove-htaccess-redirect-site-lockout',
],
[
'id' => 'mixed-content-general',
'group_id' => 'mixed-content-general',
'title' => __( 'Mixed content', 'really-simple-ssl' ),
'helpLink' => 'remove-htaccess-redirect-site-lockout',
],
[
'id' => 'mixed-content-scan',
'group_id' => 'mixed-content-scan',
'title' => __( 'Mixed Content Scan', 'really-simple-ssl' ),
'premium' => true,
'premium_title' => __( "Mixed Content Scan", 'really-simple-ssl' ),
'premium_text' => __( "The extensive mixed content scan will list all issues and provide a fix, or instructions to fix manually.", 'really-simple-ssl' ),
'helpLink' => rsssl_link('mixedcontent', 'instructions'),
],
],
],
[
'id' => 'security_headers',
'title' => __( 'Security Headers', 'really-simple-ssl' ),
'featured' => false,
'menu_items' => [
[
'id' => 'recommended_security_headers',
'group_id' => 'recommended_security_headers',
'title' => __( 'Essential Security Headers', 'really-simple-ssl' ),
'networkwide_required' => true,
'premium_title' => __( "The Essentials", 'really-simple-ssl' ),
'premium' => true,
'premium_text' => __( "Protecting your website visitors from malicious attacks and data breaches should be your #1 priority, start with the essentials with Really Simple Security", 'really-simple-ssl' ),
'helpLink' => 'instructions/about-recommended-security-headers',
],
[
'id' => 'hsts',
'group_id' => 'hsts',
'premium' => true,
'networkwide_required' => true,
'premium_text' => __( "HSTS forces browsers always to load a website via HTTPS. It prevents unnecessary redirects and prevents manipulation of data originating from communication with your website.", 'really-simple-ssl' ),
'title' => 'HTTP Strict Transport Security',
'helpLink' => 'instructions/about-hsts',
],
[
'id' => 'permissions_policy',
'group_id' => 'permissions_policy',
'title' => 'Permissions Policy',
'premium_text' => __( "Control browser features that could allow third parties to misuse data collected by microphone, camera, GEO Location etc, when enabled for your website.", 'really-simple-ssl' ),
'helpLink' => 'instructions/about-permissions-policy',
'networkwide_required' => true,
'premium' => true,
],
[
'id' => 'content_security_policy',
'group_id' => 'content_security_policy',
'title' => __( 'Content Security Policy', 'really-simple-ssl' ),
'intro' => __( 'Content Security Policy Headers', 'really-simple-ssl' ),
'premium' => true,
'networkwide_required' => true,
'helpLink' => 'instructions/configuring-the-content-security-policy',
'groups' => [
[
'id' => 'upgrade_insecure_requests',
'group_id' => 'upgrade_insecure_requests',
'networkwide_required' => true,
'premium' => true,
'premium_text' => __( "A correctly configured Content Security Policy can protect your visitors from the most common web attacks. It all starts with denying and upgrading insecure requests on your website.", 'really-simple-ssl' ),
'helpLink' => 'instructions/configuring-the-content-security-policy',
'title' => 'Upgrade Insecure Requests',
],
[
'id' => 'frame_ancestors',
'group_id' => 'frame_ancestors',
'networkwide_required' => true,
'premium' => true,
'premium_text' => __( "Prevent clickjacking and other malicious attacks by restricting sources that are permitted to embed content from your website.", 'really-simple-ssl' ),
'helpLink' => 'instructions/frame-ancestors',
'title' => 'Frame Ancestors',
],
[
'id' => 'content_security_policy_source_directives',
'group_id' => 'content_security_policy_source_directives',
'networkwide_required' => true,
'helpLink' => 'instructions/source-directives/',
'premium' => true,
'premium_title' => 'Source Directives with Learning Mode',
'premium_text' => __( "Allow only necessary third party resources to be loaded on your website, thus preventing common attacks. Use our unique learning mode to automatically configure your Content Security Policy.", 'really-simple-ssl' ),
'title' => 'Source Directives',
]
],
],
[
'id' => 'cross_origin_policy',
'group_id' => 'cross_origin_policy',
'networkwide_required' => true,
'premium' => true,
'premium_text' => __( 'This is a security feature implemented by web browsers to control how web pages from different origins can interact with each other.', 'really-simple-ssl' ),
'title' => 'Cross Origin Policy',
'premium_title' => 'Advanced: Cross Origin Policy',
'helpLink' => 'instructions/cross-origin-policies',
],
],
],
[
'id' => 'vulnerabilities',
'title' => __( 'Vulnerabilities', 'really-simple-ssl' ),
'menu_items' => [
[
'id' => 'vulnerabilities_basic',
'group_id' => 'vulnerabilities_basic',
'title' => __( 'Vulnerability scan', 'really-simple-ssl' ),
'groups' => [
[
'id' => 'vulnerabilities_basic',
'group_id' => 'vulnerabilities_basic',
'title' => __( 'Vulnerability scan', 'really-simple-ssl' ),
'intro' => __( 'Here you can configure vulnerability detection, notifications and measures. To learn more about the features displayed, please use the instructions linked in the top-right corner.', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-vulnerabilities/',
],
[
'id' => 'vulnerabilities_overview',
'group_id' => 'vulnerabilities_overview',
'title' => __( 'Scan results', 'really-simple-ssl' ),
'intro' => __( 'This is the vulnerability overview. Here you will find current known vulnerabilities on your system. You can find more information and helpful, actionable insights for every vulnerability under details.', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-vulnerabilities#components',
],
],
],
[
'id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_notifications',
'title' => __( 'Configuration', 'really-simple-ssl' ),
'groups' => [
[
'id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_notifications',
'title' => __( 'Notifications', 'really-simple-ssl' ),
'intro' => __( 'These notifications are set to the minimum risk level that triggers a notification. For example, the default site-wide notification triggers on high-risk and critical vulnerabilities.', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-vulnerabilities#notifications',
],
[
'id' => 'vulnerabilities-measures-overview',
'group_id' => 'vulnerabilities_measures',
'title' => __( 'Measures', 'really-simple-ssl' ),
'intro' => __( 'You can choose to automate the most common actions for a vulnerability. Each action is set to a minimum risk level, similar to the notifications. Please read the instructions to learn more about the process.', 'really-simple-ssl' ),
'premium' => true,
'helpLink' => 'instructions/about-vulnerabilities#measures',
'premium_title' => __( "Automated Measures", 'really-simple-ssl' ),
'premium_text' => __( "Maintain peace of mind with our simple, but effective automated measures when vulnerabilities are discovered. When needed Really Simple Security will force update or quarantaine vulnerable components, on your terms!", 'really-simple-ssl' ),
],
],
],
],
],
[
'id' => 'hardening',
'title' => __( 'Hardening', 'really-simple-ssl' ),
'featured' => false,
'menu_items' => [
[
'id' => 'hardening-basic',
'group_id' => 'hardening-basic',
'title' => __( 'Basic', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-hardening-features',
],
[
'id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'title' => __( 'Advanced', 'really-simple-ssl' ),
'premium' => true,
'groups' => [
[
'id' => 'hardening_extended',
'group_id' => 'hardening_extended',
'premium' => true,
'premium_text' => __( "Advanced hardening features complement the basic hardening functions by protecting your site against advanced threats and attacks.", 'really-simple-ssl' ),
'helpLink' => 'instructions/about-hardening-features#advanced',
'title' => __( 'Advanced Hardening', 'really-simple-ssl' ),
'intro' => __( 'Advanced hardening features to protect your site against sophisticated threats and attacks.', 'really-simple-ssl' ),
],
[
'id' => 'hardening-xml',
'group_id' => 'hardening-xml',
'premium' => true,
'premium_title' => __( 'XML-RPC with Learning Mode', 'really-simple-ssl' ),
'premium_text' => __( "Not sure if you're using XML-RPC, or want to restrict unauthorized use of XML-RPC? With learning mode you can see exactly which sources use XML-RPC, and you can revoke where necessary.", 'really-simple-ssl' ),
'helpLink' => 'instructions/about-hardening-features#xml-rpc',
'title' => __( 'XML-RPC', 'really-simple-ssl' ),
'intro' => __( 'Control and monitor the use of XML-RPC on your site with learning mode.', 'really-simple-ssl' ),
],
],
],
[
'id' => 'hardening-file-change',
'group_id' => 'hardening-file-change',
'title' => __( 'File Change Detection', 'really-simple-ssl' ),
'premium' => true,
'groups' => [
[
'id' => 'hardening-file-change-main',
'group_id' => 'hardening-file-change-main',
'premium' => true,
'premium_text' =>__( 'Keep your site secure by monitoring unexpected file changes.', 'really-simple-ssl' ),
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=hardening&mtm_source=free&mtm_content=upgrade',
'helpLink' => 'https://really-simple-ssl.com/instructions/about-file-change-detection?mtm_campaign=instructions&mtm_source=free',
'title' => __( 'File Change Detection', 'really-simple-ssl' ),
'intro' => __( "File Change Detection generates a snapshot of every .php and .js file. On a daily basis, each file is then compared to this snapshot.", 'really-simple-ssl' )
. ' ' .__( "You will receive an email warning if changes are detected.", 'really-simple-ssl' )
. ' ' .__( "If unexpected file changes have occurred, this could be an indication that your site is compromised.", 'really-simple-ssl' )
. ' ' .__( "The snapshots will be updated after WordPress, plugins or themes are activated or updated.", 'really-simple-ssl' ),
],
[
'id' => 'hardening-file-change-datatable',
'group_id' => 'hardening-file-change-datatable',
'helpLink' => 'https://really-simple-ssl.com/instructions/about-file-change-detection',
'title' => __( 'Detected File Changes', 'really-simple-ssl' ),
'intro' => __( 'The daily scan will report any detected file changes in the table below.', 'really-simple-ssl' )
.' '.__( 'If you recognize the detected changes, you can add the files to the exclude list, or ignore them just once.', 'really-simple-ssl' )
.' '.__( 'You can reset the report and generate a new snapshot, for example if you made changes via FTP.', 'really-simple-ssl' ),
],
],
],
],
],
[
'id' => 'login-security',
'title' => __('Login Protection', 'really-simple-ssl'),
'featured' => false,
'new' => true,
'menu_items' => [
[
'id' => 'two-fa',
'networkwide_required' => true,
'premium' => false,
'premium_text' => __( 'Get two-factor authentication with Really Simple Security Pro', 'really-simple-ssl' ),
'helpLink' => 'instructions/about-login-protection',
'title' => __('Two-Factor Authentication', 'really-simple-ssl'),
'groups' => [
[
'id' => 'two_fa_general',
'group_id' => 'two_fa_general',
'premium' => false,
'premium_text' => __( "Start login protection by adding an additional layer during authentication. This will leave authentication less dependent on just a single password. Want to force strong passwords? Check out Password Security.", 'really-simple-ssl' ),
'helpLink' => 'instructions/about-login-protection',
'title' => __( 'Two-Factor Authentication', 'really-simple-ssl' ),
'intro' => __( 'Two-Factor authentication allows users to login using a second authentication method, other than their e-mail address and password. It is one of the most powerful ways to prevent account theft.', 'really-simple-ssl' ),
],
[
'id' => 'two_fa_email',
'group_id' => 'two_fa_email',
'premium' => false,
'premium_text' => __( 'Send an email code during login. You can force user roles to use two-factor authentication, or leave the choose with your users, if so desired.', 'really-simple-ssl' ),
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=2fa&mtm_source=free&mtm_content=upgrade',
'helpLink' => 'instructions/two-factor-authentication',
'title' => __( 'Email Verification', 'really-simple-ssl' ),
'intro' => __( 'Email Verification sends a verification code to the user’s email address. This method provides protection against leaked or weak passwords, though it is less secure than other 2FA methods. If a user’s email inbox is compromised, one could still get access to the user account. It is not recommended to allow Email Verification for administrators.', 'really-simple-ssl' ),
],
[
'id' => 'two_fa_totp',
'group_id' => 'two_fa_totp',
'premium' => true,
'premium_text' => __( 'Get Login Protection with Really Simple Security Pro', 'really-simple-ssl' ),
'helpLink' => 'instructions/two-factor-authentication',
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=2fa&mtm_source=free&mtm_content=upgrade',
'title' => __( 'Authenticator App (TOTP)', 'really-simple-ssl' ),
'intro' => __( 'TOTP requires users to authenticate using a third-party app such as Google Authenticator.', 'really-simple-ssl' ),
],
[
'id' => 'two_fa_users',
'group_id' => 'two_fa_users',
'premium' => false,
'premium_text' => __( 'Here you control the users that are automatically, and temporarily blocked. You can also add or remove users manually. We recommend blocking ‘admin’ as username as a start.', 'really-simple-ssl' ),
'helpLink' => 'instructions/two-factor-authentication',
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=2fa&mtm_source=free&mtm_content=upgrade',
'title' => __( 'Users', 'really-simple-ssl' ),
'intro' => __( 'Here you can see which users have configured Two-Factor Authentication. The reset button will trigger the 2FA onboarding for the selected user(s) again and allow the configured grace period.', 'really-simple-ssl' ),
'groupFilter' => [
'default' => 'active',
'id' => 'two_fa_user_filter',
'options' => [
[
'id' => 'all',
'title' => __('All', 'really-simple-ssl'),
],
[
'id' => 'active',
'title' => __('Active', 'really-simple-ssl'),
],
[
'id' => 'open',
'title' => __('Open', 'really-simple-ssl'),
],
[
'id' => 'disabled',
'title' => __('Disabled', 'really-simple-ssl'),
]
],
],
],
],
],
[
'id' => 'password_security',
'networkwide_required' => true,
'title' => __('Password Security','really-simple-ssl'),
'helpLink' => 'https://really-simple-ssl.com/instructions/password-security/?mtm_campaign=instructions&mtm_source=free',
'groups' => [
[
'id' => 'password_security_passwords',
'group_id' => 'password_security_passwords',
'premium_title' => __( 'Password security', 'really-simple-ssl' ),
'premium_text' => __( 'Enforce secure password policies for your users by requiring strong passwords, and expiring passwords after a period of your choosing.', 'really-simple-ssl' ),
'premium' => true,
'helpLink' => 'instructions/password-security',
'title' => __( 'Passwords', 'really-simple-ssl' ),
'intro' => __( 'Improve security by requiring strong passwords and forced periodic password changes', 'really-simple-ssl' ),
],
]
],
[
'id' => 'limit_login_attempts',
'title' => __( 'Limit Login Attempts', 'really-simple-ssl' ),
'premium' => true,
'groups' => [
[
'id' => 'limit_login_attempts_general',
'group_id' => 'limit_login_attempts_general',
'helpLink' => 'instructions/limit-login-attempts',
'premium' => true,
'premium_title' => __( 'Limit Login Attempts', 'really-simple-ssl' ),
'premium_text' => __( 'Customize login attempts, intervals, and temporary lockouts according to your preferences to regulate the level of security on your website during authentication. No additional settings required', 'really-simple-ssl' ),
'title' => __( 'General', 'really-simple-ssl' ),
'intro' => __( 'Protect your site against brute force login attacks by limiting the number of login attempts. Enabling this feature will temporary lock-out a username and the IP address that tries to login, after the set number of false logins.',
'really-simple-ssl' ),
],
[
'id' => 'limit_login_attempts_advanced',
'group_id' => 'limit_login_attempts_advanced',
'premium' => true,
'premium_title' => __( 'Settings', 'really-simple-ssl' ),
'premium_text' => __( 'Customize login attempts, intervals, and temporary lockouts according to your preferences to regulate the level of security on your website during authentication. No additional settings required', 'really-simple-ssl' ),
'helpLink' => 'instructions/limit-login-attempts',
'title' => __( 'Limit Attempts', 'really-simple-ssl' ),
'intro' => __( 'The settings below determine how strict your site will be protected. You can leave these settings on their default values, unless you experience issues.',
'really-simple-ssl' ),
],
[
'id' => 'limit_login_attempts_users',
'group_id' => 'limit_login_attempts_users',
'premium' => true,
'premium_title' => __( 'Users', 'really-simple-ssl' ),
'premium_text' => __( 'Here you control the users that are automatically, and temporarily blocked. You can also add or remove users manually. We recommend blocking ‘admin’ as username as a start.', 'really-simple-ssl' ),
'groupFilter' => [
'default' => 'limit_login_attempts_advanced_filter_log',
'id' => 'limit_login_attempts_advanced_filter',
'options' => [
[
'id' => 'blocked',
'title' => __( 'Permanent block', 'really-simple-ssl' ),
],
[
'id' => 'allowed',
'title' => __( 'Trusted', 'really-simple-ssl' ),
],
[
'id' => 'locked',
'title' => __( 'Temporary block', 'really-simple-ssl' ),
],
],
],
'title' => __( 'Users', 'really-simple-ssl' ),
'intro' => [
'locked' => __( 'Blocked usernames will be automatically unblocked after the above-configured interval. In the table below you can instantly unblock usernames.',
'really-simple-ssl' ),
'allowed' => __( 'You can prevent usernames from being temporarily blocked by adding them to this list. The IP address that triggers false logins will still be blocked.',
'really-simple-ssl' ),
'blocked' => __( 'You can add any non-existing username to this table, to instantly block IP addresses that try common usernames like "admin".',
'really-simple-ssl' ),
],
],
[
'id' => 'limit_login_attempts_ip_address',
'group_id' => 'limit_login_attempts_ip_address',
'premium' => true,
'premium_title' => __( 'IP Addresses', 'really-simple-ssl' ),
'premium_text' => __( 'IP Addresses can be allowed, blocked or will show up when your settings add them to a temporary blocklist. If you want to add your IP to the allowlist, please read the article provided at the right-hand side for instructions.', 'really-simple-ssl' ),
'groupFilter' => [
'default' => 'limit_login_attempts_advanced_filter_log',
'id' => 'limit_login_attempts_advanced_filter',
'options' => [
[
'id' => 'blocked',
'title' => __( 'Permanent block', 'really-simple-ssl' ),
],
[
'id' => 'allowed',
'title' => __( 'Trusted', 'really-simple-ssl' ),
],
[
'id' => 'locked',
'title' => __( 'Temporary block', 'really-simple-ssl' ),
],
],
],
'title' => __( 'IP Addresses', 'really-simple-ssl' ),
'intro' => [
'locked' => __( 'Blocked IP addresses will be automatically unblocked after the above-configured interval. In the table below you can instantly unblock IP addresses.',
'really-simple-ssl' ),
'allowed' => __( 'You can prevent IP addresses from being temporarily blocked by adding them to this list. This can be convenient if you share an IP address with other site users. Usernames that trigger false logins will still be blocked.',
'really-simple-ssl' ),
'blocked' => __( 'You can indefinitely block known abusive IP addresses, to completely prevent them from trying to login.',
'really-simple-ssl' ),
],
],
[
'id' => 'limit_login_attempts_event_log',
'group_id' => 'limit_login_attempts_event_log',
'premium' => true,
'premium_title' => __( 'Event Log', 'really-simple-ssl' ),
'premium_text' => __( 'The Event Log shows all relevant events related to limit login attempts. You can filter the log using the dropdown on the top-right to only show warnings.', 'really-simple-ssl' ),
'groupFilter' => [
'default' => 'limit_login_attempts_advanced_filter_log',
'id' => 'limit_login_attempts_advanced_filter',
'options' => [
[
'id' => 'warning',
'title' => __( 'Warnings', 'really-simple-ssl' ),
],
[
'id' => 'all',
'title' => __( 'All', 'really-simple-ssl' ),
],
],
],
'title' => __( 'Event Log', 'really-simple-ssl' ),
'intro' => __( 'The Event Log shows all relevant events related to limit login attempts. You can filter the log using the dropdown on the top-right to only show warnings.',
'really-simple-ssl' ),
],
[
'id' => 'limit_login_attempts_country',
'group_id' => 'limit_login_attempts_country',
'premium' => true,
'premium_title' => __( 'Regions', 'really-simple-ssl' ),
'premium_text' => __( 'You can easily block countries, or entire continents. You can act on the event log below and see which countries are suspicious, or exclude all countries but your own.', 'really-simple-ssl' ),
'groupFilter' => [
'default' => 'limit_login_attempts_advanced_filter_log',
'id' => 'limit_login_attempts_advanced_filter',
'options' => [
[
'id' => 'blocked',
'title' => __( 'Blocked', 'really-simple-ssl' ),
],
[
'id' => 'regions',
'title' => __( 'Continents', 'really-simple-ssl' ),
],
[
'id' => 'countries',
'title' => __( 'Allowed', 'really-simple-ssl' ),
],
],
],
'title' => __( 'Regions', 'really-simple-ssl' ),
'intro' => __( 'If your site is only intended for users to login from specific geographical regions, you can entirely prevent logins from certain continents or countries.',
'really-simple-ssl' ),
]
],
],
],
],
[
'id' => 'firewall',
'title' => __( 'Firewall', 'really-simple-ssl' ),
'featured' => false,
'premium' => true,
'new' => true,
'menu_items' => [
[
'id' => 'rules',
'title' => __( 'Rules', 'really-simple-ssl' ),
'premium' => true,
'groups' => [
[
'id' => 'firewall_list_general',
'group_id' => 'firewall_list_general',
'helpLink' => 'instructions/about-the-firewall',
'premium' => true,
'premium_title' => __( 'Firewall Rules', 'really-simple-ssl' ),
'premium_text' => __( 'Restrict access from specific countries or continents. You can also allow only specific countries.', 'really-simple-ssl' ),
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=lla&mtm_source=free&mtm_content=upgrade',
'title' => __( 'Firewall', 'really-simple-ssl' ),
'intro' => __( 'The lightweight Firewall can be used to lockout malicious traffic from your site. You can configure generic rules below, or block specific IP addresses by adding them to the Blocklist.',
'really-simple-ssl' ),
],
[
'id' => '404_blocking',
'group_id' => '404_blocking',
'premium' => true,
'title' => __( '404 Blocking', 'really-simple-ssl' ),
'premium_title' => __( '404 Blocking', 'really-simple-ssl' ),
'premium_text' => __( 'Crawlers might scan your site looking for possible exploits. One way to detect this is the fact that they trigger more 404 (not found) errors than legitimate visitors would. Below you can set the threshold and lockout duration for 404 blocking.', 'really-simple-ssl' ),
'intro' => __( 'Crawlers might scan your site looking for possible exploits. One way to detect this is the fact that they trigger more 404 (not found) errors than legitimate visitors would. Below you can set the threshold and lockout duration for 404 blocking.', 'really-simple-ssl' ),
],
[
'id' => 'user_agents',
'group_id' => 'user_agents',
'premium' => true,
'title' => __( 'User-Agents', 'really-simple-ssl' ),
'premium_title' => __( 'User-Agents', 'really-simple-ssl' ),
'premium_text' => __( 'The Firewall can also block traffic from malicious or resource-consuming bots that might crawl your website. A list of well-known bad User-Agents is automatically included. You can manually add or delete user-agents if so desired.', 'really-simple-ssl' ),
'intro' => __( 'The Firewall can also block traffic from malicious or resource-consuming bots that might crawl your website. A list of well-known bad User-Agents is automatically included. You can manually add or delete user-agents if so desired.', 'really-simple-ssl' ),
'groupFilter' => [
'default' => 'blocked',
'id' => 'rsssl-group-filter-user_agent_listing_overview',
'options' => [
[
'id' => 'blocked',
'title' => __( 'Blocked', 'really-simple-ssl' ),
],
[
'id' => 'deleted',
'title' => __( 'Deleted', 'really-simple-ssl' ),
],
],
],
],
[
'id' => 'firewall_list_listing',
'group_id' => 'firewall_list_listing',
'networkwide_required' => true,
'premium' => true,
'premium_text' => __( 'This feature allows you to block visitors from your website based on country',
'really-simple-ssl' ),
'title' => __( 'Regions', 'really-simple-ssl' ),
'premium_title' => __( 'Regions', 'really-simple-ssl' ),
'intro' => __( 'Restrict access to your site based on user location. By default, all regions are allowed. You can also block entire continents.',
'really-simple-ssl' ),
'groupFilter' => [
'default' => 'regions',
'id' => 'rsssl-group-filter-geo_block_list',
'options' => [
[
'id' => 'blocked',
'title' => __( 'Blocked', 'really-simple-ssl' ),
],
[
'id' => 'regions',
'title' => __( 'Continents', 'really-simple-ssl' ),
],
[
'id' => 'countries',
'title' => __( 'Allowed', 'really-simple-ssl' ),
],
],
],
],
]
],
[
'id' => 'firewall_blocklists',
'title' => __( 'Blocklists', 'really-simple-ssl' ),
'premium' => true,
'groups' => [
[
'id' => 'firewall_white_list_listing',
'group_id' => 'firewall_white_list_listing',
'networkwide_required' => true,
'premium' => true,
'premium_text' => __( 'This feature allows you to block visitors from your website based on country',
'really-simple-ssl' ),
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=cops&mtm_source=free&mtm_content=upgrade',
'title' => __( 'Trusted IP addresses', 'really-simple-ssl' ),
'premium_title' => __( 'Trusted IP addresses', 'really-simple-ssl' ),
'intro' => __( 'Here you can add IP addresses that should never be blocked by the Firewall. We will automatically add the IP address of the administrator that enabled the Firewall.',
'really-simple-ssl' ),
],
[
'id' => 'firewall_block_list_listing',
'group_id' => 'firewall_block_list_listing',
'networkwide_required' => true,
'premium' => true,
'premium_text' => __( 'This feature allows you to block visitors from your website based on country',
'really-simple-ssl' ),
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=cops&mtm_source=free&mtm_content=upgrade',
'title' => __( 'IP Blocklist', 'really-simple-ssl' ),
'premium_title' => __( 'IP Blocklist', 'really-simple-ssl' ),
'intro' => __( 'This list shows all individually blocked IP addresses. On top the top-right you can filter between permanent blocks and temporary blocks. By default, blocks are only temporary, as attackers and bots will frequently alter between IP addresses. However, you can manually configure permanent blocks.',
'really-simple-ssl' ),
'groupFilter' => [
'default' => 'all',
'id' => 'rsssl-group-filter-geo_block_list',
'options' => [
[
'id' => 'all',
'title' => __( 'All', 'really-simple-ssl' ),
],
[
'id' => 'temp',
'title' => __( 'Temporary', 'really-simple-ssl' ),
],
[
'id' => 'permanent',
'title' => __( 'Permanent', 'really-simple-ssl' ),
],
],
],
],
]
],
[
'id' => 'firewall_logs',
'title' => __( 'Logs', 'really-simple-ssl' ),
'premium' => true,
'groups' => [
[
'id' => 'firewall_logs_content',
'group_id' => 'firewall_logs_content',
'premium' => true,
'premium_text' => __( 'This feature allows you to block visitors from your website based on country',
'really-simple-ssl' ),
'upgrade' => 'https://really-simple-ssl.com/pro/?mtm_campaign=cops&mtm_source=free&mtm_content=upgrade',
'title' => __( 'Event Logs', 'really-simple-ssl' ),
'premium_title' => __( 'Event Logs', 'really-simple-ssl' ),
'intro' => __( 'The Event Log shows all relevant events related to the Firewall and IP lockouts. You can filter the log using the dropdown on the top-right to only show warnings.',
'really-simple-ssl' ),
'groupFilter' => [
'default' => 'all',
'id' => 'rsssl-group-filter-firewall_logs_content',
'options' => [
[
'id' => 'all',
'title' => __( 'All', 'really-simple-ssl' ),
],
[
'id' => 'warning',
'title' => __( 'Warnings', 'really-simple-ssl' ),
],
],
],
],
]
]
]
],
],
],
[
"id" => "letsencrypt",
'default_hidden' => true,
"title" => "Let's Encrypt",
'intro' => sprintf( __( 'We have tried to make our Wizard as simple and fast as possible. Although these questions are all necessary, if there’s any way you think we can improve the plugin, please let us %sknow%s!',
'really-simple-ssl' ), '<a target="_blank" rel="noopener noreferrer" href="https://really-simple-ssl.com/contact/?mtm_campaign=instructions&mtm_source=free">', '</a>' ) .
sprintf( __( ' Please note that you can always save and finish the wizard later, use our %sdocumentation%s for additional information or log a %ssupport ticket%s if you need our assistance.',
'really-simple-ssl' ), '<a target="_blank" rel="noopener noreferrer" href="https://really-simple-ssl.com/install-ssl-certificate/?mtm_campaign=instructions&mtm_source=free">', '</a>',
'<a target="_blank" rel="noopener noreferrer" href="https://wordpress.org/support/plugin/really-simple-ssl/">', '</a>' ),
'menu_items' => [
[
'id' => 'le-system-status',
'group_id' => 'le-system-status',
'title' => __('System status', 'really-simple-ssl'),
'intro' => __('Letʼs Encrypt is a free, automated and open certificate authority brought to you by the nonprofit Internet Security Research Group (ISRG).',
'really-simple-ssl'),
'helpLink' => 'about-lets-encrypt',
'tests_only' => true,
],
[
'id' => 'le-general',
'title' => __('General Settings', 'really-simple-ssl'),
],
[
'id' => 'le-hosting',
'title' => __('Hosting', 'really-simple-ssl'),
'intro' => __('Below you will find the instructions for different hosting environments and configurations. If you start the process with the necessary instructions and credentials the next steps will be done in no time.',
'really-simple-ssl'),
],
[
'id' => 'le-directories',
'title' => __('Directories', 'really-simple-ssl'),
'tests_only' => true,
],
[
'id' => 'le-dns-verification',
'title' => __('DNS verification', 'really-simple-ssl'),
'tests_only' => true,
],
[
'id' => 'le-generation',
'title' => __('Generation', 'really-simple-ssl'),
'tests_only' => true,
],
[
'id' => 'le-installation',
'title' => __('Installation', 'really-simple-ssl'),
'tests_only' => true,
],
[
'id' => 'le-activate_ssl',
'title' => __('Activate', 'really-simple-ssl'),
'tests_only' => true,
],
],
],
];
$menu_items = apply_filters('rsssl_menu', $menu_items);
return rsssl_add_url_param_ids( $menu_items );
}
/**
* Add URL parameters to upgrade links
*
* @param array $menu_items
*
* @return array
*/
function rsssl_add_url_param_ids( array $menu_items ): array {
foreach ( $menu_items as $key => $menu_item ) {
if (isset($menu_item['menu_items'])) {
$menu_items[ $key ]['menu_items'] = rsssl_add_url_param_ids( $menu_item['menu_items'] );
}
if (isset($menu_item['groups'])) {
$menu_items[ $key ]['groups'] = rsssl_add_url_param_ids( $menu_item['groups'] );
}
if ( isset( $menu_item['premium'] ) ) {
$menu_items[ $key ]['upgrade'] =rsssl_link( 'pro', $menu_item['id'] );
}
if ( isset( $menu_item['helpLink'] ) ) {
$menu_items[ $key ]['helpLink'] = rsssl_link( $menu_item['helpLink'], 'instructions', $menu_item['id'] );
}
}
return $menu_items;
}
function rsssl_get_url_ref(){
if ( !defined('HBRW_PLATFORM_ID') ) {
return false;
}
if ( defined( 'rsssl_pro') ) {
return false;
}
$param_ids = [
1 => 483,//Combell
2 => 492,//Easyhost
];
$id = (int) HBRW_PLATFORM_ID;
return $param_ids[ $id ] ?? false;
}
function rsssl_link( $slug = 'pro', $mtm_campaign = 'notification', $mtm_src = 'free', $discount = '' ): string {
$mtm_src = sanitize_title( $mtm_src );
$mtm_campaign = sanitize_title( $mtm_campaign );
$ref = rsssl_get_url_ref();
//remove slash at start of $slug, if existing, and add at the end.
$slug = trailingslashit( ltrim( $slug, '/' ) );
$multisite = is_multisite() ? 'mtm_kwd=multisite&' : '';
$url = "https://really-simple-ssl.com/$slug?{$multisite}mtm_campaign=$mtm_campaign&mtm_source=$mtm_src&mtm_content=upgrade";
if ( (int) $ref > 0 ) {
$url = add_query_arg( 'ref', $ref, $url );
}
// Add discount code separately if provided
if ( ! empty( $discount ) ) {
$url = add_query_arg( 'discount', $discount, $url );
}
return $url;
}
PK �MFZ?t4s# # config/index.phpnu �[��� <?php // You don't belong here. ?>
PK �MFZɐ��_ _ config/disable-fields-filter.phpnu �[��� <?php
defined('ABSPATH') or die();
/**
* @param $fields
*
* @return mixed
*/
function rsssl_remove_fields($fields){
$redirect_index = array_search( 'redirect', array_column( $fields, 'id' ), true );
if ( !rsssl_uses_htaccess() ){
unset($fields[$redirect_index]['options']['htaccess']);
} else {
$fields[$redirect_index]['warning'] = true;
$fields[$redirect_index]['tooltip'] = ' '.__('On Apache you can use a .htaccess redirect, which is usually faster, but may cause issues on some configurations. Read the instructions in the sidebar first.', 'really-simple-ssl');
if ( rsssl_get_option('redirect' ) !== 'htaccess' ) {
$fields[ $redirect_index ]['help'] = [
'label' => 'warning',
'title' => __( "Redirect method", 'really-simple-ssl' ),
'text' => __( 'Enable .htaccess only if you know how to regain access in case of issues.', 'really-simple-ssl' ) . ' ' . __( 'Redirects your site to https with a SEO friendly 301 redirect if it is requested over http.', 'really-simple-ssl' ),
'url' => 'remove-htaccess-redirect-site-lockout',
];
}
}
if ( is_multisite() && !rsssl_is_networkwide_active() ){
unset($fields[$redirect_index]['options']['htaccess']);
$fields = array_values($fields);
}
// 2FA and LLA e-mail verification help texts
if ( ! rsssl_is_email_verified() ) {
$index = array_search( 'send_verification_email', array_column( $fields, 'id' ), true );
$fields[$index]['help'] = rsssl_email_help_text();
$fields = array_values($fields);
}
if ( ! rsssl_is_email_verified() && rsssl_get_option('two_fa_enabled_email') == '1' ) {
$index = array_search( 'two_fa_enabled_email', array_column( $fields, 'id' ), true );
$fields[$index]['help'] = rsssl_email_help_text();
$fields = array_values($fields);
}
if ( ! rsssl_is_email_verified() && rsssl_get_option('enable_limited_login_attempts') == '1' ) {
$index = array_search( 'limit_login_attempts_amount', array_column( $fields, 'id' ), true );
//if LLA is not included yet, this index will be false.
if ( $index !== false ) {
$fields[$index]['help'] = rsssl_email_help_text();
$fields = array_values($fields);
}
}
return $fields;
}
add_filter('rsssl_fields', 'rsssl_remove_fields', 500, 1);
function rsssl_email_help_text() {
return [
'label' => rsssl_is_email_verified() ? 'success' : 'warning',
'title' => __( "Email validation", 'really-simple-ssl' ),
'url' => 'instructions/email-verification',
'text' => rsssl_is_email_verified()
? __( "Email validation completed", 'really-simple-ssl' )
: ( rsssl_check_if_email_essential_feature()
? __( "You're using a feature where email is an essential part of the functionality. Please validate that you can send emails on your server.", 'really-simple-ssl' )
: __("Email not verified yet. Verify your email address to get the most out of Really Simple Security.", "really-simple-ssl")
),
];
}
PK �MFZ��BV} } $ config/fields/hardening-extended.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
add_filter( 'rsssl_fields', function( $fields ) {
return array_merge( $fields,
[
[
'id' => 'change_debug_log_location',
'group_id' => 'hardening-extended',
'menu_id' => 'hardening-extended',
'type' => 'checkbox',
'tooltip' => __( "A debug.log is publicly accessibile and has a standard location. This will change the location to a randomly named folder in /wp-content/", 'really-simple-ssl' ),
'email' => [
'title' => __( "Settings update: Debug.log file relocated", 'really-simple-ssl' ),
'message' => __( "From now on, the debug.log won’t be publicly accessible whenever wp-debugging is enabled. The debug log will be stored in a randomly named folder in /wp-content/. This prevents possible leakage of sensitive debugging information.", 'really-simple-ssl' ),
'url' => 'https://really-simple-ssl.com/instructions/debug-log-has-been-relocated-but-where',
],
'label' => __( "Change debug.log file location", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
],
[
'id' => 'disable_application_passwords',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'type' => 'checkbox',
'label' => __( "Disable application passwords", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
],
[
'id' => 'block_admin_creation',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'type' => 'checkbox',
'warning' => __( "This setting will block attempts to assign administrator roles outside the native user creation process by WordPress. This might include other plugins that create, edit or assign roles to users. If you need to create an administrator in a third-party plugin, temporarily disable this setting while you make the changes.", 'really-simple-ssl' ),
'tooltip' => __( "This setting will block attempts to assign administrator roles outside the native user creation process by WordPress. This might include other plugins that create, edit or assign roles to users. If you need to create an administrator in a third-party plugin, temporarily disable this setting while you make the changes.", 'really-simple-ssl' ),
'help' => [
'label' => 'default',
'url' => 'instructions/about-hardening-features/',
'title' => __( "Unauthorized administrators", 'really-simple-ssl' ),
'text' => __( 'Many vulnerabilities are exploited by injecting a user with administrator capabilities outside of the native WordPress creation process. Under advanced hardening you can prevent this from happening.', 'really-simple-ssl' ),
],
'label' => __( "Restrict creation of administrator roles", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
],
[
'id' => 'disable_http_methods',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'type' => 'checkbox',
'tooltip' => __( "This will limit or fully disable HTTP requests that are not needed, but could be used with malicious intent.", 'really-simple-ssl' ),
'label' => __( "Disable HTTP methods", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
],
[
'id' => 'rename_db_prefix',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'email' => [
'title' => __( "Settings update: Database prefix changed", 'really-simple-ssl' ),
'message' => __( "Security through obscurity. Your site is no longer using the default wp_ prefix for database tables. The process has been designed to only complete and replace the tables after all wp_ tables are successfully renamed. In the unlikely event that this does lead to database issues on your site, please navigate to our troubleshooting article.", 'really-simple-ssl' ),
'url' => 'instructions/database-issues-after-changing-prefix',
],
'tooltip' => __( "This will permanently change your database prefixes and you can NOT rollback this feature. Please make sure you have a back-up.", 'really-simple-ssl' ),
'warning' => __( "This will permanently change your database prefixes and you can NOT rollback this feature. Please make sure you have a back-up.", 'really-simple-ssl' ),
'type' => 'checkbox',
'label' => __( "Rename and randomize your database prefix", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
],
[
'id' => 'permission_detection',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'type' => 'checkbox',
'tooltip' => __( "Really Simple Security will scan for insecure file and folder permissions on a weekly basis. You will receive an email report and Dashboard notice if insecure permissions are found.", 'really-simple-ssl' ),
'label' => __( "File permissions check", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
],
[
'id' => 'change_login_url_enabled',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'warning' => true,
'type' => 'checkbox',
'tooltip' => __( "Allows you to enter a custom login URL.", 'really-simple-ssl' ),
'label' => __( "Enable Custom login URL", 'really-simple-ssl' ),
'email' => [
'title' => __( "You have changed your login URL", 'really-simple-ssl' ),
'message' => __( "Your login URL has changed to {login_url} to prevent common bot attacks on standard login URLs. Learn more about this feature, common questions and measures to prevent any issues.", 'really-simple-ssl' ),
'url' => 'https://really-simple-ssl.com/instructions/login-url-changed',
],
'disabled' => false,
'default' => false,
],
[
'id' => 'change_login_url',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'type' => 'text',
'tooltip' => __( "Enter a custom login URL. This allows you to log in via this custom URL instead of /wp-admin or /wp-login.php", 'really-simple-ssl' ),
'placeholder' => __( "Example: If you want to change your login page from /wp-admin/ to /control/ answer: control", 'really-simple-ssl' ),
'label' => __( "Custom login URL", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
'condition_action' => 'hide',
'pattern' => '[a-zA-Z0-9\-_]+',
'react_conditions' => [
'relation' => 'AND',
[
'change_login_url_enabled' => 1,
]
],
],
[
'id' => 'change_login_url_failure_url',
'menu_id' => 'hardening-extended',
'group_id' => 'hardening-extended',
'type' => 'postdropdown',
'tooltip' => __( "Users trying to enter via /wp-admin or /wp-login.php will be redirected to this URL.", 'really-simple-ssl' ),
'label' => '',
'disabled' => false,
'default' => '404_default',
'condition_action' => 'hide',
'react_conditions' => [
'relation' => 'AND',
[
'change_login_url_enabled' => 1,
]
],
],
]
);
}, 200 );
PK �MFZ�>M�� � config/fields/access-control.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
add_filter( 'rsssl_fields', function( $fields ) {
return array_merge( $fields,
[
[
'id' => 'enforce_password_security_enabled',
'menu_id' => 'password_security',
'group_id' => 'password_security_passwords',
'type' => 'checkbox',
'label' => __( "Enforce strong passwords", "really-simple-ssl" ),
'disabled' => false,
'default' => 'disabled',
'tooltip' => __( "This adds extra requirements for strong passwords for new users and updated passwords.", 'really-simple-ssl' ),
'help' => [
'label' => 'default',
'url' => 'instructions/password-security',
'title' => __( "Enforce strong passwords", 'really-simple-ssl' ),
'text' => __( 'Improve the default WordPress password strength check. You can also enforce frequent password changes for user roles.', 'really-simple-ssl' ).' '.__('They might be misused if you don’t actively tell the browser to disable these features.', 'really-simple-ssl' ),
],
],
[
'id' => 'enforce_frequent_password_change',
'menu_id' => 'password_security',
'group_id' => 'password_security_passwords',
'type' => 'checkbox',
'label' => __( "Enforce frequent password change", "really-simple-ssl" ),
'disabled' => false,
'default' => 'disabled',
'react_conditions' => [
'relation' => 'AND',
[
'enforce_password_security_enabled' => 1,
]
],
],
[
'id' => 'password_change_roles',
'menu_id' => 'password_security',
'group_id' => 'password_security_passwords',
'type' => 'roles_dropdown',
'default' => [ 'administrator'],
'label' => __( "User roles for password change", "really-simple-ssl" ),
'react_conditions' => [
'relation' => 'AND',
[
'enforce_frequent_password_change' => 1,
]
],
],
[
'id' => 'password_change_frequency',
'menu_id' => 'password_security',
'group_id' => 'password_security_passwords',
'type' => 'select',
'default' => '12',
'options' => [
'6' => __( "6 months", "really-simple-ssl" ),
'12' => __( "1 year", "really-simple-ssl" ),
'24' => __( "2 years", "really-simple-ssl" ),
],
'label' => __( "Change passwords every", "really-simple-ssl" ),
'react_conditions' => [
'relation' => 'AND',
[
'enforce_frequent_password_change' => 1,
]
],
],
[
'id' => 'login_cookie_expiration',
'menu_id' => 'password_security',
'group_id' => 'password_security_passwords',
'type' => 'select',
'default' => '48',
'options' => [
'8' => __( "8 hours (recommended)", "really-simple-ssl" ),
'48' => __( "48 hours (default)", "really-simple-ssl" ),
],
'label' => __( "Limit logged in session duration", "really-simple-ssl" ),
'help' => [
'label' => 'default',
'title' => __( "Prevent session hijacking", 'really-simple-ssl' ),
'text' => __( "Really Simple Security allows you to limit the default logged in session duration. By default, WordPress will keep users logged in for 48 hours, or even 14 days when clicking the ‘remember me’ checkbox. An attacker could possibly steal the logged in cookie and gain access to a user’s account. Limiting the logged in duration to 8 hours will greatly reduce the risk of session hijacking.", 'really-simple-ssl' ),
],
],
[
'id' => 'hide_rememberme',
'menu_id' => 'password_security',
'group_id' => 'password_security_passwords',
'type' => 'checkbox',
'default' => false,
'label' => __( "Hide the remember me checkbox", "really-simple-ssl" ),
],
]
);
}, 200 );
PK �MFZV�u u config/fields/encryption.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
add_filter( 'rsssl_fields', function( $fields ) {
return array_merge( $fields,
[
[
'id' => 'redirect',
'menu_id' => 'encryption',
'group_id' => 'encryption_redirect',
'type' => 'select',
'tooltip' => __( "Changing redirect methods should be done with caution. Please make sure you have read our instructions beforehand at the right-hand side.", 'really-simple-ssl' ),
'label' => __( "Redirect method", 'really-simple-ssl' ),
'warning' => true,
'options' => [
'none' => __( "No redirect", "really-simple-ssl" ),
'wp_redirect' => __( "301 PHP redirect", "really-simple-ssl" ),
'htaccess' => __( "301 .htaccess redirect (read instructions first)", "really-simple-ssl" ),
],
'help' => [
'label' => 'default',
'title' => __( "Redirect method", 'really-simple-ssl' ),
'text' => __( 'Redirects your site to https with a SEO friendly 301 redirect if it is requested over http.', 'really-simple-ssl' ),
],
'email' => [
'title' => __("Settings update: .htaccess redirect", 'really-simple-ssl'),
'message' => __("The .htaccess redirect has been enabled on your site. If the server configuration is non-standard, this might cause issues. Please check if all pages on your site are functioning properly.",
'really-simple-ssl'),
'url' => 'https://really-simple-ssl.com/remove-htaccess-redirect-site-lockout',
'condition' => ['redirect' => 'htaccess']
],
'react_conditions' => [
'relation' => 'AND',
[
'ssl_enabled' => '1',
]
],
'default' => false,
],
[
'id' => 'mixed_content_fixer',
'menu_id' => 'encryption',
'group_id' => 'mixed-content-general',
'type' => 'checkbox',
'label' => __("Mixed content fixer", 'really-simple-ssl'),
'disabled' => false,
'default' => true,
],
[
'id' => 'switch_mixed_content_fixer_hook',
'menu_id' => 'encryption',
'group_id' => 'mixed-content-general',
'type' => 'checkbox',
'label' => __("Mixed content fixer - init hook", 'really-simple-ssl'),
'disabled' => false,
'required' => false,
'default' => false,
'tooltip' => __('If this option is set to true, the mixed content fixer will fire on the init hook instead of the template_redirect hook. Only use this option when you experience problems with the mixed content fixer.',
'really-simple-ssl'),
'react_conditions' => [
'relation' => 'AND',
[
'mixed_content_fixer' => 1,
]
],
],
[
'id' => 'admin_mixed_content_fixer',
'menu_id' => 'encryption',
'group_id' => 'mixed-content-general',
'type' => 'checkbox',
'label' => __("Mixed content fixer - back-end", "really-simple-ssl"),
'tooltip' => __("Only enable this if you experience mixed content in the admin environment of your WordPress website.",
'really-simple-ssl'),
'disabled' => false,
'default' => false,
],
[
'id' => 'mixedcontentscan',
'menu_id' => 'encryption',
'group_id' => 'mixed-content-scan',
'type' => 'mixedcontentscan',
'label' => __( "Mixed content scan", "really-simple-ssl" ),
'help' => [
'label' => 'default',
'url' => 'definition/what-is-mixed-content',
'title' => __( "About the Mixed Content Scan", 'really-simple-ssl' ),
'text' => __( 'The extensive mixed content scan will list all issues and provide a fix, or instructions to fix manually.', 'really-simple-ssl' ),
],
'columns' => [
[
'name' => __( 'Type', 'really-simple-ssl' ),
'sortable' => true,
'column' => 'warningControl',
'grow' => 5,
'width' => '5%',
],
[
'name' => __( 'Description', 'really-simple-ssl' ),
'sortable' => true,
'column' => 'description',
'grow' => 15,
],
[
'name' => __( 'Location', 'really-simple-ssl' ),
'sortable' => true,
'column' => 'locationControl',
'grow' => 4,
],
[
'name' => __( '', 'really-simple-ssl' ),
'sortable' => false,
'column' => 'detailsControl',
'grow' => 5,
],
[
'name' => __( '', 'really-simple-ssl' ),
'sortable' => false,
'column' => 'fixControl',
'grow' => 5,
'right' => true,
],
],
'disabled' => false,
'default' => false,
],
]
);
}, 300 );
PK �MFZ�;�U� � ) config/fields/vulnerability-detection.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
add_filter( 'rsssl_fields', function( $fields ) {
return array_merge( $fields,
[
[
'id' => 'enable_vulnerability_scanner',
'menu_id' => 'vulnerabilities_basic',
'group_id' => 'vulnerabilities_basic',
'type' => 'checkbox',
'label' => __('Enable vulnerability scanning', 'really-simple-ssl'),
'tooltip' => __( "This feature depends on multiple standard background processes. If a process fails or is unavailable on your system, detection might not work. We run frequent tests for this purpose. We will notify you accordingly if there are any issues.", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
'warning' => true,
'help' => [
'label' => 'default',
'url' => 'instructions/about-vulnerabilities/',
'title' => __( "About Vulnerabilities", 'really-simple-ssl' ),
'text' => __( 'Really Simple Security collects information about plugins, themes, and core vulnerabilities from our database powered by WPVulnerability. Anonymized data about these vulnerable components will be sent to Really Simple Security for statistical analysis to improve open-source contributions. For more information, please read our privacy statement.', 'really-simple-ssl' ),
],
],
[
'id' => 'vulnerabilities_intro_shown',
'menu_id' => 'vulnerabilities_basic',
'group_id' => 'vulnerabilities_basic',
'type' => 'hidden',
'label' => '',
'disabled' => false,
'default' => false,
],
[
'id' => 'enable_feedback_in_plugin',
'menu_id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_notifications',
'tooltip' => __( "If there's a vulnerability, you will also get feedback on the themes and plugin overview.", 'really-simple-ssl' ),
'warning' => false,
'type' => 'checkbox',
'label' => __('Feedback in plugin overview', 'really-simple-ssl'),
'disabled' => false,
'default' => false,
'react_conditions' => [
'relation' => 'AND',
[
'enable_vulnerability_scanner' => 1,
]
],
],
/* Vulnerability advanced Section */
[
'id' => 'vulnerability_notification_dashboard',
'menu_id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_notifications',
'type' => 'select',
'options' => [
'*' => __('None', 'really-simple-ssl'),
'l' => __('Low-risk (default)', 'really-simple-ssl'),
'm' => __('Medium-risk', 'really-simple-ssl'),
'h' => __('High-risk', 'really-simple-ssl'),
'c' => __('Critical', 'really-simple-ssl'),
],
'label' => __('Really Simple Security dashboard', 'really-simple-ssl'),
'disabled' => false,
'default' => 'l',
'react_conditions' => [
'relation' => 'AND',
[
'enable_vulnerability_scanner' => 1,
]
],
],
[
'id' => 'vulnerability_notification_sitewide',
'menu_id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_notifications',
'type' => 'select',
'options' => [
'*' => __('None', 'really-simple-ssl'),
'l' => __('Low-risk ', 'really-simple-ssl'),
'm' => __('Medium-risk', 'really-simple-ssl'),
'h' => __('High-risk (default)', 'really-simple-ssl'),
'c' => __('Critical', 'really-simple-ssl'),
],
'label' => __('Site-wide, admin notification', 'really-simple-ssl'),
'disabled' => false,
'default' => 'h',
'react_conditions' => [
'relation' => 'AND',
[
'enable_vulnerability_scanner' => 1,
]
],
],
[
'id' => 'vulnerability_notification_email_admin',
'menu_id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_notifications',
'type' => 'select',
'options' => [
'*' => __('None', 'really-simple-ssl'),
'l' => __('Low-risk', 'really-simple-ssl'),
'm' => __('Medium-risk', 'really-simple-ssl'),
'h' => __('High-risk', 'really-simple-ssl'),
'c' => __('Critical (default)', 'really-simple-ssl'),
],
'label' => __('Email', 'really-simple-ssl'),
'tooltip' => __( "This will send emails about vulnerabilities directly from your server. Make sure you can receive emails by the testing a preview below. If this feature is disabled, please enable notifications under general settings.", 'really-simple-ssl' ),
'warning' => true,
'disabled' => false,
'default' => 'c',
'react_conditions' => [
'relation' => 'AND',
[
'enable_vulnerability_scanner' => 1,
],
[
'send_notifications_email' => 1,
]
],
],
[
'id' => 'vulnerabilities_test',
'menu_id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_notifications',
'type' => 'notificationtester',
'action' => 'test_vulnerability_notification',
'label' => __('Test notifications', 'really-simple-ssl'),
'tooltip' => __('Test notifications can be used to test email delivery and shows how vulnerabilities will be reported on your WordPress installation.', 'really-simple-ssl'),
'disabled' => false,
'button_text' => __( "Test notifications", "really-simple-ssl" ),
'react_conditions' => [
'relation' => 'AND',
[
'enable_vulnerability_scanner' => 1,
'send_notifications_email' => 1,
]
],
],
[
'id' => 'vulnerabilities-overview',
'menu_id' => 'vulnerabilities_basic',
'group_id' => 'vulnerabilities_overview',
'type' => 'vulnerabilitiestable',
'label' => __('Vulnerabilities Overview', 'really-simple-ssl'),
'disabled' => false,
'default' => false,
'react_conditions' => [
'relation' => 'AND',
[
'enable_vulnerability_scanner' => 1,
]
],
'columns' => [
[
'id' => 'component',
'name' => __('Component', 'really-simple-ssl'),
'sortable' => false,
'column' => 'Name',
'width' => '55%',
'searchable' => true,
],
[
'id' => 'date',
'name' => __('Date', 'really-simple-ssl'),
'sortable' => false,
'column' => 'date',
'width' => '15%',
],
[
'id' => 'risk',
'name' => __('Risk', 'really-simple-ssl'),
'sortable' => false,
'column' => 'risk_name',
'width' => '10%',
'searchable' => true,
],
[
'id' => 'action',
'name' => __('', 'really-simple-ssl'),
'sortable' => false,
'column' => 'vulnerability_action',
'width' => '20%',
]
]
],
[
'id' => 'vulnerabilities-measures-overview',
'menu_id' => 'vulnerabilities_measures',
'group_id' => 'vulnerabilities_measures',
'type' => 'riskcomponent',
'options' => [
'*' => __('None', 'really-simple-ssl'),
'l' => __('Low-risk', 'really-simple-ssl'),
'm' => __('Medium-risk', 'really-simple-ssl'),
'h' => __('High-risk', 'really-simple-ssl'),
'c' => __('Critical', 'really-simple-ssl'),
],
'react_conditions' => [
'relation' => 'AND',
[
'measures_enabled' => true,
]
],
'disabled' => false,
'default' => false,
'columns' => [
[
'name' => __( 'Action', 'really-simple-ssl' ),
'sortable' => false,
'column' => 'name',
'width' => '20%',
],
[
'name' => __( 'Risk', 'really-simple-ssl' ),
'sortable' => false,
'column' => 'riskSelection',
'width' => '24%',
],
[
'name' => __( 'Description', 'really-simple-ssl' ),
'sortable' => false,
'column' => 'description',
'type' => 'text',
],
],
],
[
'id' => 'measures_enabled',
'menu_id' => 'vulnerabilities_notifications',
'group_id' => 'vulnerabilities_measures',
'type' => 'checkbox',
'label' => __("I have read and understood the risks to intervene with these measures.","really-simple-ssl"),
'comment' => '<a href="https://really-simple-ssl.com/instructions/about-vulnerabilities#measures" target="_blank" rel="noopener noreferrer">'.__("Read more", "really-simple-ssl") .'</a>',
'disabled' => false,
'default' => false,
'react_conditions' => [
'relation' => 'AND',
[
'enable_vulnerability_scanner' => true,
]
],
],
]
);
}, 200 );
PK �MFZK�'�$ �$ config/fields/firewall.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
add_filter( 'rsssl_fields', function( $fields ) {
return array_merge( $fields,
[
[
'id' => 'enable_firewall',
'menu_id' => 'rules',
'group_id' => 'firewall_list_general',
'type' => 'checkbox',
'label' => __( 'Enable Firewall', 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
],
[
'id' => 'firewall_white_listing_overview',
'menu_id' => 'firewall_blocklists',
'group_id' => 'firewall_white_list_listing',
'type' => 'geo-ip-datatable',
'action' => 'rsssl_geo_white_list',
'react_conditions' => [
'relation' => 'AND',
[
'enable_firewall' => true,
]
],
'columns' => [
[
'name' => __('IP Address', 'really-simple-ssl'),
'sortable' => true,
'searchable' => true,
'column' => 'ip_address',
'width' => '45%',
],
[
'name' => __('Note', 'really-simple-ssl'),
'sortable' => false,
'column' => 'note',
'width' => '20%',
],
[
'name' => __('Date', 'really-simple-ssl'),
'sortable' => true,
'column' => 'create_date',
'width' => '18%',
],
[
'name' => '',
'sortable' => false,
'column' => 'action',
'width' => '13%',
],
],
],
[
'id' => 'firewall_block_listing_overview',
'menu_id' => 'firewall_blocklists',
'group_id' => 'firewall_block_list_listing',
'type' => 'blocklist-datatable',
'action' => 'rsssl_firewall_block_list',
'react_conditions' => [
'relation' => 'AND',
[
'enable_firewall' => true,
]
],
'columns' => [
[
'name' => __('IP Address', 'really-simple-ssl'),
'sortable' => true,
'searchable' => true,
'column' => 'ip_address',
'width' => '55%',
],
[
'name' => __('Note', 'really-simple-ssl'),
'sortable' => false,
'column' => 'note',
'width' => '22%',
],
[
'name' => __('Time left', 'really-simple-ssl'),
'sortable' => true,
'column' => 'time_left',
'width' => '10%',
],
[
'name' => '',
'sortable' => false,
'column' => 'action',
'width' => '13%',
],
],
],
[
'id' => '404_blocking_threshold',
'menu_id' => 'rules',
'group_id' => '404_blocking',
'type' => 'select',
'label' => __( 'Threshold', 'really-simple-ssl' ),
'tooltip' => sprintf(__('A lockout will occur if an IP address exceeds the threshold within the given timeframe. Select ‘%s’ if you want to disable 404 blocking.', 'really-simple-ssl'), __('Disabled', 'really-simple-ssl')),
'default' => 'lax',
'options' => [
'disabled' => __( 'Disabled', 'really-simple-ssl' ),
'lax' => __( 'Lax - 10 errors in 2 seconds', 'really-simple-ssl' ),
'normal' => __( 'Normal - 10 errors in 5 seconds', 'really-simple-ssl' ),
'strict' => __( 'Strict - 10 errors in 10 seconds', 'really-simple-ssl' ),
],
'react_conditions' => [
'relation' => 'AND',
[
'enable_firewall' => true,
]
],
],
[
'id' => '404_blocking_lockout_duration',
'menu_id' => 'rules',
'group_id' => '404_blocking',
'type' => 'select',
'label' => __( 'Lockout duration', 'really-simple-ssl' ),
'tooltip' => __('The IP address will see a locked out screen for the selected duration.', 'really-simple-ssl'),
'options' => [
'30' => __( '30 minutes', 'really-simple-ssl' ),
'60' => __( '1 hour', 'really-simple-ssl' ),
'240' => __( '4 hours', 'really-simple-ssl' ),
'1440' => __( '1 day', 'really-simple-ssl' ),
],
'react_conditions' => [
'relation' => 'AND',
[
'enable_firewall' => true,
]
],
],
[
'id' => '404_blocking_captcha_trigger',
'menu_id' => 'rules',
'group_id' => '404_blocking',
'type' => 'checkbox',
'tooltip' => __('Allow visitors that might accidentally exceed the threshold to unblock themselves using a Captcha.', 'really-simple-ssl'),
'label' => __( 'Trigger Captcha on lockout', 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
'comment' => sprintf(__( 'Please configure your %sCaptcha settings%s before enabling this setting',
'really-simple-ssl' ), '<a id="set_to_captcha_configuration" href="#settings/general/enable_captcha_provider">', '</a>'),
'react_conditions' => [
'relation' => 'AND',
[
'enable_firewall' => true,
'captcha_fully_enabled' => true,
],
],
],
[
'id' => 'user_agent_listing_overview',
'menu_id' => 'rules',
'group_id' => 'user_agents',
'type' => 'user-agents-datatable',
'action' => 'rsssl_user_agent_list',
'options' => [
'deleted' => __('Deleted', 'really-simple-ssl'),
'blocked' => __('Blocked', 'really-simple-ssl'),
],
'disabled' => false,
'default' => false,
'react_conditions' => [
'relation' => 'AND',
[
'enable_firewall' => true,
]
],
'columns' => [
[
'name' => __('User-Agent', 'really-simple-ssl'),
'sortable' => true,
'searchable' => true,
'column' => 'user_agent',
'width' => '20%',
],
[
'name' => __('Note', 'really-simple-ssl'),
'sortable' => false,
'searchable' => false,
'column' => 'note',
'width' => '40%',
],
[
'name' => __('Date Added', 'really-simple-ssl'),
'sortable' => false,
'column' => 'created_at',
'width' => '20%',
],
[
'name' => '',
'sortable' => false,
'column' => 'action',
],
],
],
[
'id' => 'firewall_listing_overview',
'menu_id' => 'rules',
'group_id' => 'firewall_list_listing',
'type' => 'geo-datatable',
'action' => 'rsssl_geo_list',
'options' => [
'blocked' => __('Blocked', 'really-simple-ssl'),
'locked' => __('Locked-out', 'really-simple-ssl'),
'trusted' => __('Trusted', 'really-simple-ssl'),
],
'disabled' => false,
'default' => false,
'react_conditions' => [
'relation' => 'AND',
[
'enable_firewall' => true,
]
],
'columns' => [
[
'name' => __('', 'really-simple-ssl'),
'sortable' => true,
'searchable' => false,
'column' => 'flag',
'width' => '5%',
],
[
'name' => __('Country', 'really-simple-ssl'),
'sortable' => true,
'searchable' => true,
'column' => 'country_name',
'width' => '150px',
],
[
'name' => __('Continent', 'really-simple-ssl'),
'sortable' => false,
'searchable' => false,
'column' => 'region_name',
'width' => '30%',
],
[
'name' => __('Status', 'really-simple-ssl'),
'sortable' => false,
'column' => 'status',
'width' => '20%',
],
[
'name' => '',
'sortable' => false,
'column' => 'action',
'width' => '180px',
],
],
],
[
'id' => 'firewall_event_log_viewer',
'menu_id' => 'firewall_logs',
'group_id' => 'firewall_logs_content',
'type' => 'eventlog-datatable',
'action' => 'event_log',
'event_type' => 'Firewall',
'label' => __('IP address overview', 'really-simple-ssl'),
'disabled' => false,
'default' => false,
'react_conditions' => [
'relation' => 'AND',
[
'event_log_enabled' => true,
]
],
'columns' => [
[
'name' => __('Country', 'really-simple-ssl'),
'sortable' => true,
'column' => 'iso2_code',
'width' => '8%',
],
[
'name' => __('IP Address', 'really-simple-ssl'),
'sortable' => true,
'searchable' => true,
'column' => 'source_ip',
'type' => 'text',
'width' => '42%',
],
[
'name' => __('Date', 'really-simple-ssl'),
'sortable' => true,
'column' => 'datetime',
'width' => '20%',
],
[
'name' => __('Event', 'really-simple-ssl'),
'sortable' => true,
'column' => 'event_name',
'width' => '25%',
]
],
],
]
);
}, 200 );
PK �MFZX���G G config/fields/general.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
add_filter( 'rsssl_fields', function( $fields ) {
return array_merge( $fields,
[
[
'id' => 'ssl_enabled',
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'hidden',
'label' => 'ssl_enabled',
'disabled' => false,
'default' => false,
],
[
'id' => 'site_has_ssl',
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'hidden',
'label' => '',
'disabled' => false,
'default' => false,
],
[
'id' => 'other_host_type',
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'host',
//options loaded in data store
'default' => false,
'label' => __( "Hosting provider", 'really-simple-ssl' ),
'required' => false,
'disabled' => false,
],
[
'id' => 'review_notice_shown',
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'hidden',
'label' => '',
'disabled' => false,
'default' => false,
],
[
'id' => 'dismiss_all_notices',
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'checkbox',
'label' => __("Dismiss all notifications", 'really-simple-ssl'),
'disabled' => false,
'default' => false,
],
[
'id' => 'download-system-status',
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'button',
'url' => trailingslashit(rsssl_url).'system-status.php?download',
'button_text' => __("Download", "really-simple-ssl"),
'label' => __("System status", 'really-simple-ssl'),
'disabled' => false,
'default' => false,
],
[
'id' => 'delete_data_on_uninstall',
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'checkbox',
'label' => __("Delete all data on plugin deletion", 'really-simple-ssl'),
'default' => false,
],
[
'id' => 'notifications_email_address',
'menu_id' => 'general',
'group_id' => 'general_email',
'type' => 'email',
'label' => __( "Email address", 'really-simple-ssl' ),
'disabled' => false,
'default' => get_bloginfo('admin_email'),
],
[
'id' => 'send_verification_email',
'menu_id' => 'general',
'group_id' => 'general_email',
'type' => 'button',
'action' => 'send_verification_mail',
'button_text' => __( "Send", "really-simple-ssl" ),
'warning' => true,
'label' => __( "Email verification", 'really-simple-ssl' ),
'disabled' => rsssl_is_email_verified(),
'tooltip' => __( "Verify your email address to get the most out of Really Simple Security.", 'really-simple-ssl' ),
],
[
'id' => 'send_notifications_email',
'menu_id' => 'general',
'group_id' => 'general_email',
'type' => 'checkbox',
'label' => __("Notifications by email", 'really-simple-ssl'),
'tooltip' => __("Get notified of important changes, updates and settings. Recommended when using security features.", 'really-simple-ssl'),
'disabled' => false,
'default' => false,
],
[
'id' => 'enabled_captcha_provider',
'menu_id' => 'general',
'group_id' => 'general_captcha',
'type' => 'select',
'options' => [
'none' => __( "Choose your provider", "really-simple-ssl" ),
'recaptcha' => __( "reCaptcha v2", "really-simple-ssl" ),
'hcaptcha' => __( "hCaptcha", "really-simple-ssl" ),
],
'label' => __( "Captcha provider", 'really-simple-ssl' ),
'disabled' => false,
'default' => 'none',
'required' => false,
],
[
'id' => 'captcha_fully_enabled',
'menu_id' => 'general',
'group_id' => 'general_captcha',
'type' => 'hidden',
'label' => '',
'default' => false,
],
[
'id' => 'recaptcha_site_key',
'menu_id' => 'general',
'group_id' => 'general_captcha',
'type' => 'captcha_key',
'label' => __( "reCaptcha site key", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
'required' => true,
'visible' => false,
'server_conditions' => [
'relation' => 'AND',
[
'enabled_captcha_provider' => 'recaptcha',
]
],
],
[
'id' => 'recaptcha_secret_key',
'menu_id' => 'general',
'group_id' => 'general_captcha',
'type' => 'captcha_key',
'label' => __( "reCaptcha secret key", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
'required' => true,
'visible' => false,
'server_conditions' => [
'relation' => 'AND',
[
'enabled_captcha_provider' => 'recaptcha',
]
],
],
[
'id' => 'hcaptcha_site_key',
'menu_id' => 'general',
'group_id' => 'general_captcha',
'type' => 'captcha_key',
'label' => __( "hCaptcha site key", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
'required' => true,
'visible' => false,
'server_conditions' => [
'relation' => 'AND',
[
'enabled_captcha_provider' => 'hcaptcha',
]
],
],
[
'id' => 'hcaptcha_secret_key',
'menu_id' => 'general',
'group_id' => 'general_captcha',
'type' => 'captcha_key',
'label' => __( "hCaptcha secret key", 'really-simple-ssl'),
'required' => true,
'disabled' => false,
'default' => false,
'visible' => false,
'server_conditions' => [
'relation' => 'AND',
[
'enabled_captcha_provider' => 'hcaptcha',
]
],
],
[
'id' => 'captcha_verified',
'menu_id' => 'general',
'group_id' => 'general_captcha',
'type' => 'captcha',
'info' => __( "Captcha has not yet been verified, you need to complete the process of a Captcha to verify it's availability.", 'really-simple-ssl' ),
'label' => '',
'default' => false,
],
[
'id' => 'premium_support',
'menu_id' => 'general',
'group_id' => 'support',
'type' => 'support',
'label' => __("Premium Support", 'really-simple-ssl'),
'disabled' => false,
'default' => false,
],
[
'id' => 'do_not_edit_htaccess', //field is removed if not enabled
'menu_id' => 'general',
'group_id' => 'general',
'type' => 'checkbox',
'label' => __( "Stop editing the .htaccess file", 'really-simple-ssl' ),
'disabled' => false,
'default' => false,
//on multisite this setting can only be set networkwide
'networkwide_required' => true,
'server_conditions' => [
'relation' => 'AND',
[
'RSSSL()->server->uses_htaccess()' => true,
]
],
],
]
);
}, 100 );
PK �MFZ;�l� config/fields/two-fa.phpnu �[��� <?php
defined( 'ABSPATH' ) or die();
add_filter( 'rsssl_fields', function( $fields ) {
return array_merge( $fields,
[
[
'id' => 'login_protection_enabled',
'menu_id' => 'two-fa',
'group_id' => 'two_fa_general',
'type' => 'checkbox',
'label' => __( "Enable Two-Factor Authentication", "really-simple-ssl" ),
'disabled' => false,
'default' => 'disabled',
'server_conditions' => [
'relation' => 'AND',
[
'is_multisite' => false,
]
],
],
[
'id' => 'two_fa_forced_roles',
'forced_roles_id' => 'two_fa_forced_roles',
'menu_id' => 'two-fa',
'group_id' => 'two_fa_general',
'type' => 'two_fa_roles',
'default' => [],
'label' => __( 'Enforce for:', 'really-simple-ssl' ),
'tooltip' => __( 'Enforcing 2FA ensures that all users with the selected roles must login using Two-Factor Authentication. It is strongly recommended to at least enforce 2FA for Administrators.', 'really-simple-ssl' ),
'react_conditions' => [
'relation' => 'AND',
[
'login_protection_enabled' => true,
]
],
'server_conditions' => [
'relation' => 'AND',
[
'is_multisite' => false,
]
],
],
[
'id' => 'two_fa_grace_period',
'menu_id' => 'two_fa',
'group_id' => 'two_fa_general',
'type' => 'select',
'label' => __( 'Allow grace period', 'really-simple-ssl' ),
'tooltip' => __( 'During the grace period users can configure their Two-Factor method. When the grace period ends, users for which 2FA is enforced won’t be able to login unless 2FA is correctly configured. The grace period is also applied to new users.', 'really-simple-ssl' ),
'disabled' => false,
'options' => [
'1' => sprintf(__('%s day', 'really-simple-ssl'), 1),
'5' => sprintf(__('%s days', 'really-simple-ssl'), 5),
'10' => sprintf(__('%s days', 'really-simple-ssl'), 10),
'30' => sprintf(__('%s days', 'really-simple-ssl'), 30),
],
'warning' => false,
'default' => '10',
'server_conditions' => [
'relation' => 'AND',
[
'is_multisite' => false,
]
],
'react_conditions' => [
'relation' => 'AND',
[
'login_protection_enabled' => true,
]
],
],
[
'id' => 'two_fa_enabled_roles_email',
'enabled_roles_id' => 'two_fa_forced_roles',
'menu_id' => 'two-fa',
'group_id' => 'two_fa_email',
'type' => 'roles_enabled_dropdown',
'default' => [],
'label' => __( 'Enable for:', 'really-simple-ssl' ),
'react_conditions' => [
'relation' => 'AND',
[
'login_protection_enabled' => 1
]
],
'server_conditions' => [
'relation' => 'AND',
[
'is_multisite' => false,
]
],
],
[
'id' => 'two_fa_enabled_roles_totp',
'enabled_roles_id' => 'two_fa_forced_roles',
'menu_id' => 'two-fa',
'group_id' => 'two_fa_totp',
'type' => 'roles_enabled_dropdown',
'premium' => true,
'default' => [],
'label' => __( 'Enable for:', 'really-simple-ssl' ),
'react_conditions' => [
'relation' => 'AND',
[
'login_protection_enabled' => true
]
],
'server_conditions' => [
'relation' => 'AND',
[
'is_multisite' => false,
]
],
],
[
'id' => 'two_fa_users_table',
'menu_id' => 'two-fa',
'group_id' => 'two_fa_users',
'type' => 'twofa-datatable',
'action' => 'two_fa_table',
'label' => __('Users', 'really-simple-ssl'),
'disabled' => false,
'default' => false,
'server_conditions' => [
'relation' => 'AND',
[
'is_multisite' => false,
]
],
'columns' => [
[
'name' => __( 'Username', 'really-simple-ssl' ),
'sortable' => true,
'searchable' => true,
'visible' => true,
'column' => 'user',
'width' => '20%',
],
[
'name' => __( 'User role', 'really-simple-ssl' ),
'sortable' => false,
'searchable' => false,
'visible' => true,
'column' => 'user_role',
'width' => '20%',
],
[
'name' => __( 'Method', 'really-simple-ssl' ),
'sortable' => false,
'searchable' => true,
'visible' => true,
'width' => '20%',
'column' => 'rsssl_two_fa_providers',
],
[
'name' => __( 'Status', 'really-simple-ssl' ),
'sortable' => false,
'searchable' => false,
'visible' => true,
'width' => '20%',
'column' => 'status_for_user',
],
[
'name' => '',
'sortable' => false,
'searchable' => false,
'visible' => true,
'column' => 'resetControl',
],
],
],
]
);
}, 200 );
PK �MFZKh*v* * &