MDL-84009 factor_webauthn: Add additional security keys

This commit is contained in:
raortegar
2025-05-14 11:20:54 +02:00
parent ef1b8d05f6
commit 502bcbfb01
3 changed files with 32 additions and 0 deletions
@@ -115,6 +115,15 @@ class factor extends object_factor_base {
return true;
}
/**
* Returns true if an additional setup button should be shown on the preferences page.
*
* @return bool
*/
public function show_additional_setup_button(): bool {
return true;
}
/**
* WebAuthn factor implementation.
*
@@ -155,6 +164,15 @@ class factor extends object_factor_base {
return get_string('setupfactorbutton', 'factor_webauthn');
}
/**
* Gets the string for additional setup button on preferences page.
*
* @return string
*/
public function get_additional_setup_string(): string {
return get_string('setupfactorbuttonadditional', 'factor_webauthn');
}
/**
* Gets the string for manage button on preferences page.
*
@@ -51,6 +51,7 @@ $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.';
$string['setupfactor'] = 'Set up security key';
$string['setupfactorbutton'] = 'Set up';
$string['setupfactorbuttonadditional'] = 'Add security key';
$string['setupfactor:instructionsregistersecuritykey'] = '2. Register a security key.';
$string['setupfactor:instructionssecuritykeyname'] = '1. Give your key a name.';
$string['setupfactor:intro'] = 'A security key is a physical device that you can use to authenticate yourself. Security keys can be USB tokens, Bluetooth devices, or event built-in fingerprint scanners on your phone or computer.';
@@ -32,6 +32,7 @@ Feature: Set up and manage user factors
And I click on "Cancel" "button"
And I click on "Manage security key" "button"
And I should see "Manage security key"
And I should see "Add security key"
@javascript
Scenario: I can revoke a factor only when there is more than one active factor
@@ -76,3 +77,15 @@ Feature: Set up and manage user factors
And I click on "Replace" "button" in the "MacBook" "table_row"
When I click on "Yes, replace" "button" in the "Replace 'MacBook' security key?" "dialogue"
Then I should see "Replace security key"
Scenario: I can add a new factor instance on the manage factor page
Given the following config values are set as admin:
| enabled | 1 | factor_webauthn |
And the following "tool_mfa > User factors" exist:
| username | factor | label |
| admin | webauthn | MacBook |
And I follow "Preferences" in the user menu
And I click on "Multi-factor authentication preferences" "link"
And I click on "Manage security key" "button"
When I click on "Add security key" "button"
Then I should see "Set up security key"