diff --git a/admin/tool/mfa/factor/admin/lang/en/factor_admin.php b/admin/tool/mfa/factor/admin/lang/en/factor_admin.php index c0a84d775ac..5562f25e0eb 100644 --- a/admin/tool/mfa/factor/admin/lang/en/factor_admin.php +++ b/admin/tool/mfa/factor/admin/lang/en/factor_admin.php @@ -26,6 +26,7 @@ $string['info'] = 'This factor allows for NOT being an administrator to count as a factor. Its intended use is to ensure administators require tighter security, so regular users get the weight for free, while admins must use other factors.'; $string['pluginname'] = 'Non-administrator'; $string['privacy:metadata'] = 'The Non-administrator factor plugin does not store any personal data.'; +$string['settings:description'] = 'All users except site administrators receive the points for this factor. This allows you to require additional authentication factors for site administrators.'; $string['settings:shortdescription'] = 'Require additional authentication factors for administrators.'; $string['settings:weight_help'] = 'Weight is given to regular users for this factor, so admins must have more factors than a regular user to pass.'; $string['summarycondition'] = 'is not an admin'; diff --git a/admin/tool/mfa/factor/admin/settings.php b/admin/tool/mfa/factor/admin/settings.php index 2520cd7baa7..284db643fd5 100644 --- a/admin/tool/mfa/factor/admin/settings.php +++ b/admin/tool/mfa/factor/admin/settings.php @@ -25,6 +25,9 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_admin/description', '', new lang_string('settings:description', 'factor_admin'))); +$settings->add(new admin_setting_heading('factor_admin/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_admin/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/auth/lang/en/factor_auth.php b/admin/tool/mfa/factor/auth/lang/en/factor_auth.php index 261f5bfd6ad..f1149e9eeda 100644 --- a/admin/tool/mfa/factor/auth/lang/en/factor_auth.php +++ b/admin/tool/mfa/factor/auth/lang/en/factor_auth.php @@ -26,6 +26,7 @@ $string['info'] = 'Check the type of authentication used to log in as an MFA factor.'; $string['pluginname'] = 'Authentication type'; $string['privacy:metadata'] = 'The Authentication type factor plugin does not store any personal data.'; +$string['settings:description'] = 'Automatically verify users based on their authentication type.'; $string['settings:goodauth'] = 'Factor authentication types'; $string['settings:goodauth_help'] = 'Select all authentication types to use as a factor for MFA. Any types not selected will not be treated as a FAIL in MFA.'; $string['settings:shortdescription'] = 'Allow users to bypass extra authentication steps based on their authentication type.'; diff --git a/admin/tool/mfa/factor/auth/settings.php b/admin/tool/mfa/factor/auth/settings.php index c61009cba58..02d7dd92ab9 100644 --- a/admin/tool/mfa/factor/auth/settings.php +++ b/admin/tool/mfa/factor/auth/settings.php @@ -25,6 +25,9 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_auth/description', '', new lang_string('settings:description', 'factor_auth'))); +$settings->add(new admin_setting_heading('factor_auth/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_auth/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/capability/lang/en/factor_capability.php b/admin/tool/mfa/factor/capability/lang/en/factor_capability.php index 96a8d8430a0..af1eb00c97c 100644 --- a/admin/tool/mfa/factor/capability/lang/en/factor_capability.php +++ b/admin/tool/mfa/factor/capability/lang/en/factor_capability.php @@ -30,5 +30,7 @@ $string['settings:adminpasses'] = 'Site admins can pass this factor'; $string['settings:adminpasses_help'] = 'By default admins pass all capability checks, including this one which uses \'factor/capability:cannotpassfactor\', which means they will fail this factor. If checked then all site admins will pass this factor if they do not have this capability from another role. If unchecked site admins will fail this factor.'; +$string['settings:description'] = '
Use the capability \'factor/capability:cannotpassfactor\' to specify which users need multiple-factor authentication.
+You can assign this capability to users in the Define roles page.
'; $string['settings:shortdescription'] = 'Specify which users must use other factors to authenticate. Must be combined with other factors.'; -$string['summarycondition'] = 'does NOT have the factor/capability:cannotpassfactor capability in any role including site administrator.'; +$string['summarycondition'] = 'does NOT have the \'factor/capability:cannotpassfactor\' capability in any role including site administrator.'; diff --git a/admin/tool/mfa/factor/capability/settings.php b/admin/tool/mfa/factor/capability/settings.php index d5d1be595e2..a49e508fcf9 100644 --- a/admin/tool/mfa/factor/capability/settings.php +++ b/admin/tool/mfa/factor/capability/settings.php @@ -25,6 +25,10 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_capability/description', '', + new lang_string('settings:description', 'factor_capability'))); +$settings->add(new admin_setting_heading('factor_capability/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_capability/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/cohort/lang/en/factor_cohort.php b/admin/tool/mfa/factor/cohort/lang/en/factor_cohort.php index 8b17b6766dd..21d5d0b797d 100644 --- a/admin/tool/mfa/factor/cohort/lang/en/factor_cohort.php +++ b/admin/tool/mfa/factor/cohort/lang/en/factor_cohort.php @@ -23,9 +23,11 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -$string['pluginname'] = 'Cohort'; -$string['privacy:metadata'] = 'The Cohort factor plugin does not store any personal data.'; +$string['pluginname'] = 'Cohorts'; +$string['privacy:metadata'] = 'The Cohorts factor plugin does not store any personal data.'; $string['settings:cohort'] = 'Non-passing cohorts'; $string['settings:cohort_help'] = 'Select the cohorts that will not pass this factor. This allows you to force these cohorts to use other factors to authenticate.'; +$string['settings:description'] = 'Select the user cohorts that must use additional factors to authenticate. If this factor is not set up, all cohorts will be required to use additional factors by default.
+This factor requires a cohort to be created.
'; $string['settings:shortdescription'] = 'Specify which cohorts of users must use other factors to authenticate. Must be combined with other factors.'; $string['summarycondition'] = 'does NOT have any of the following cohorts assigned in any context: {$a}'; diff --git a/admin/tool/mfa/factor/cohort/settings.php b/admin/tool/mfa/factor/cohort/settings.php index 08aede8d5ed..ba1b12102fc 100644 --- a/admin/tool/mfa/factor/cohort/settings.php +++ b/admin/tool/mfa/factor/cohort/settings.php @@ -26,6 +26,10 @@ defined('MOODLE_INTERNAL') || die(); require_once(__DIR__ . '/../../../../../cohort/lib.php'); +$settings->add(new admin_setting_heading('factor_cohort/description', '', + new lang_string('settings:description', 'factor_cohort'))); +$settings->add(new admin_setting_heading('factor_cohort/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_cohort/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/email/lang/en/factor_email.php b/admin/tool/mfa/factor/email/lang/en/factor_email.php index 744c148de5c..7bb5dc4e2da 100644 --- a/admin/tool/mfa/factor/email/lang/en/factor_email.php +++ b/admin/tool/mfa/factor/email/lang/en/factor_email.php @@ -53,6 +53,7 @@ $string['managefactor'] = 'Manage email'; $string['manageinfo'] = '\'{$a}\' is being used to authenticate. This has been set up by your administrator.'; $string['pluginname'] = 'Email'; $string['privacy:metadata'] = 'The Email factor plugin does not store any personal data'; +$string['settings:description'] = 'Users will receive a 6-digit verification code via email, which they must enter to complete the login process.'; $string['settings:duration'] = 'Validity duration'; $string['settings:duration_help'] = 'The period of time that the code is valid.'; $string['settings:shortdescription'] = 'Require users to enter a code received via email during login.'; diff --git a/admin/tool/mfa/factor/email/settings.php b/admin/tool/mfa/factor/email/settings.php index c7df34c8a7a..2eb2a29321c 100644 --- a/admin/tool/mfa/factor/email/settings.php +++ b/admin/tool/mfa/factor/email/settings.php @@ -25,6 +25,9 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_email/description', '', new lang_string('settings:description', 'factor_email'))); +$settings->add(new admin_setting_heading('factor_email/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_email/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 1); diff --git a/admin/tool/mfa/factor/grace/lang/en/factor_grace.php b/admin/tool/mfa/factor/grace/lang/en/factor_grace.php index c1b1b8b80fb..4364538f2de 100644 --- a/admin/tool/mfa/factor/grace/lang/en/factor_grace.php +++ b/admin/tool/mfa/factor/grace/lang/en/factor_grace.php @@ -31,6 +31,7 @@ $string['redirectsetup'] = 'You must complete setup for Multi-factor authenticat $string['revokeexpiredfactors'] = 'Revoke expired grace period factors'; $string['settings:customwarning'] = 'Warning banner content'; $string['settings:customwarning_help'] = 'Add content here to replace the grace warning notification with custom HTML contents. Adding {timeremaining} in text will replace it with the current grace duration for the user, and {setuplink} will replace with the URL of the setup page for the user.'; +$string['settings:description'] = 'Allow users to log in without MFA for a specified period of time, giving them time to set up their authentication factors. After the grace period expires, users must use MFA to log in.'; $string['settings:forcesetup'] = 'Force factor setup'; $string['settings:forcesetup_help'] = 'Forces a user to the preferences page to set up multi-factor authentication when the grace period expires. If unchecked, users will be unable to authenticate when the grace period expires.'; $string['settings:graceperiod'] = 'Grace period'; diff --git a/admin/tool/mfa/factor/grace/settings.php b/admin/tool/mfa/factor/grace/settings.php index eb1448bd2fc..4ab4e931fc5 100644 --- a/admin/tool/mfa/factor/grace/settings.php +++ b/admin/tool/mfa/factor/grace/settings.php @@ -25,6 +25,9 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_grace/description', '', new lang_string('settings:description', 'factor_grace'))); +$settings->add(new admin_setting_heading('factor_grace/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_grace/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/iprange/lang/en/factor_iprange.php b/admin/tool/mfa/factor/iprange/lang/en/factor_iprange.php index 8e195eba778..dde06fcf77a 100644 --- a/admin/tool/mfa/factor/iprange/lang/en/factor_iprange.php +++ b/admin/tool/mfa/factor/iprange/lang/en/factor_iprange.php @@ -28,6 +28,7 @@ $string['allowedipshasmyip'] = 'Your IP ({$a->ip}) is in the list and you $string['allowedipshasntmyip'] = 'Your IP ({$a->ip}) is not in the list and you will not pass this factor.'; $string['pluginname'] = 'IP range'; $string['privacy:metadata'] = 'The IP range factor plugin does not store any personal data.'; +$string['settings:description'] = 'Enable automatic user verification using IP addresses. This doesn\'t require user setup and can provide a secure, seamless login on trusted networks.'; $string['settings:safeips'] = 'Safe IP ranges'; $string['settings:safeips_help'] = 'Enter a list of IP addresses or subnets to be counted as a pass in factor. If empty nobody will pass this factor. {$a->info} {$a->syntax}'; $string['settings:shortdescription'] = 'Use IP addresses to automatically verify users\' identity.'; diff --git a/admin/tool/mfa/factor/iprange/settings.php b/admin/tool/mfa/factor/iprange/settings.php index 463503a111a..591f2a426b0 100644 --- a/admin/tool/mfa/factor/iprange/settings.php +++ b/admin/tool/mfa/factor/iprange/settings.php @@ -27,6 +27,10 @@ defined('MOODLE_INTERNAL') || die(); global $OUTPUT; +$settings->add(new admin_setting_heading('factor_iprange/description', '', + new lang_string('settings:description', 'factor_iprange'))); +$settings->add(new admin_setting_heading('factor_iprange/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_iprange/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/nosetup/lang/en/factor_nosetup.php b/admin/tool/mfa/factor/nosetup/lang/en/factor_nosetup.php index d99decec2ae..2c7a56d9f34 100644 --- a/admin/tool/mfa/factor/nosetup/lang/en/factor_nosetup.php +++ b/admin/tool/mfa/factor/nosetup/lang/en/factor_nosetup.php @@ -23,9 +23,10 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -$string['deleteunusablefactors'] = 'Delete unusable Nosetup factors'; +$string['deleteunusablefactors'] = 'Delete unusable Optional MFA factors'; $string['info'] = 'This factor passes if the user has no other factors set up.'; $string['pluginname'] = 'No other factors'; $string['privacy:metadata'] = 'The No other factors plugin does not store any personal data'; +$string['settings:description'] = 'Allow users who haven\'t set up any other authentication factors to bypass MFA until another factor is added.'; $string['settings:shortdescription'] = 'Allow users to bypass MFA if they have not set up any other authentication factor.'; $string['summarycondition'] = 'has no other factors set up'; diff --git a/admin/tool/mfa/factor/nosetup/settings.php b/admin/tool/mfa/factor/nosetup/settings.php index 679d2e8b160..97d8d240570 100644 --- a/admin/tool/mfa/factor/nosetup/settings.php +++ b/admin/tool/mfa/factor/nosetup/settings.php @@ -25,6 +25,10 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_nosetup/description', '', + new lang_string('settings:description', 'factor_nosetup'))); +$settings->add(new admin_setting_heading('factor_nosetup/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_nosetup/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/role/lang/en/factor_role.php b/admin/tool/mfa/factor/role/lang/en/factor_role.php index 6e26c22400b..44616de456c 100644 --- a/admin/tool/mfa/factor/role/lang/en/factor_role.php +++ b/admin/tool/mfa/factor/role/lang/en/factor_role.php @@ -23,8 +23,9 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -$string['pluginname'] = 'Role'; -$string['privacy:metadata'] = 'The Role factor plugin does not store any personal data.'; +$string['pluginname'] = 'Roles'; +$string['privacy:metadata'] = 'The Roles factor plugin does not store any personal data.'; +$string['settings:description'] = 'Select the roles that must use additional factors to authenticate. If this factor is not turned on, all roles will be required to use an additional factor.'; $string['settings:roles'] = 'Non-passing roles'; $string['settings:roles_help'] = 'Select the roles that will not pass this factor. This allows you to force these roles to use other factors to authenticate.'; $string['settings:shortdescription'] = 'Specify which users must use other factors to authenticate, based on their role. Must be combined with other factors.'; diff --git a/admin/tool/mfa/factor/role/settings.php b/admin/tool/mfa/factor/role/settings.php index 4645638c348..dd983652991 100644 --- a/admin/tool/mfa/factor/role/settings.php +++ b/admin/tool/mfa/factor/role/settings.php @@ -25,6 +25,9 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_role/description', '', new lang_string('settings:description', 'factor_role'))); +$settings->add(new admin_setting_heading('factor_role/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_role/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0); diff --git a/admin/tool/mfa/factor/sms/lang/en/factor_sms.php b/admin/tool/mfa/factor/sms/lang/en/factor_sms.php index d67083547ba..f267ca9d867 100644 --- a/admin/tool/mfa/factor/sms/lang/en/factor_sms.php +++ b/admin/tool/mfa/factor/sms/lang/en/factor_sms.php @@ -45,16 +45,14 @@ $string['notification:smsgatewaymigration'] = 'SMS settings have moved'; $string['notification:smsgatewaymigrationinfo'] = 'A new SMS subsystem is now available for managing and configuring all SMS-related functions. Your existing SMS configurations have been migrated to the page SMS gateways.'; $string['logintitle'] = 'Enter the verification code sent to your mobile'; $string['phonehelp'] = 'Enter your mobile number (including country code) to receive a verification code.'; -$string['pluginname'] = 'SMS mobile phone'; -$string['privacy:metadata'] = 'The SMS mobile phone factor plugin does not store any personal data.'; +$string['pluginname'] = 'SMS'; +$string['privacy:metadata'] = 'The SMS factor plugin does not store any personal data.'; $string['revokefactorconfirmation'] = 'Remove \'{$a}\' SMS?'; $string['settings:duration'] = 'Validity duration'; $string['settings:duration_help'] = 'The period of time that the code is valid.'; $string['settings:gateway'] = 'SMS gateway'; $string['settings:gateway_help'] = 'The SMS provider you wish to send messages via'; -$string['settings:heading'] = 'Users will receive an SMS with 6-digit code during login, which they must enter to complete the login process. - -Users will need to register their mobile phone number first.'; +$string['settings:heading'] = 'Users will receive a 6-digit verification code via SMS, which they must enter to complete the login process. Users will need to register their mobile phone number first.'; $string['settings:setupdesc'] = 'Users authenticate using a physical security key, such as a USB or NFC token, or a biometric method like a fingerprint. During login, they must physically use their security key to verify their identity.
+Users will need to set up their own security keys first.
'; $string['settings:shortdescription'] = 'Require users to use a security key, like a USB or NFC token, or a biometric method, during login.'; $string['settings:userverification'] = 'User verification'; $string['settings:userverification_help'] = 'Serves to ensure the person authenticating is in fact who they say they are. User verification can take various forms, such as password, PIN, fingerprint, etc.'; diff --git a/admin/tool/mfa/factor/webauthn/settings.php b/admin/tool/mfa/factor/webauthn/settings.php index 0db4542345a..9e8f88c2471 100644 --- a/admin/tool/mfa/factor/webauthn/settings.php +++ b/admin/tool/mfa/factor/webauthn/settings.php @@ -25,6 +25,10 @@ defined('MOODLE_INTERNAL') || die(); +$settings->add(new admin_setting_heading('factor_webauthn/description', '', + new lang_string('settings:description', 'factor_webauthn'))); +$settings->add(new admin_setting_heading('factor_webauthn/settings', new lang_string('settings', 'moodle'), '')); + $enabled = new admin_setting_configcheckbox('factor_webauthn/enabled', new lang_string('settings:enablefactor', 'tool_mfa'), new lang_string('settings:enablefactor_help', 'tool_mfa'), 0);