updated plugin Two Factor version 0.8.2

This commit is contained in:
2023-10-22 22:21:19 +00:00
committed by Gitium
parent 880d6051ac
commit 2f6b5b6047
5 changed files with 27 additions and 11 deletions

View File

@ -1543,9 +1543,9 @@ class Two_Factor_Core {
return;
}
$providers = self::get_providers();
$enabled_providers = $_POST[ self::ENABLED_PROVIDERS_USER_META_KEY ];
$providers = self::get_providers();
$enabled_providers = $_POST[ self::ENABLED_PROVIDERS_USER_META_KEY ];
$existing_providers = self::get_enabled_providers_for_user( $user_id );
// Enable only the available providers.
$enabled_providers = array_intersect( $enabled_providers, array_keys( $providers ) );
@ -1556,6 +1556,17 @@ class Two_Factor_Core {
if ( ! empty( $new_provider ) && in_array( $new_provider, $enabled_providers, true ) ) {
update_user_meta( $user_id, self::PROVIDER_USER_META_KEY, $new_provider );
}
// Destroy other sessions if we've activated a new provider.
if ( array_diff( $enabled_providers, $existing_providers ) ) {
if ( $user_id === get_current_user_id() ) {
// Keep the current session, destroy others sessions for this user.
wp_destroy_other_sessions();
} else {
// Destroy all sessions for the user.
WP_Session_Tokens::get_instance( $user_id )->destroy_all();
}
}
}
}