Code Analysis: Two Factor 0.13.0

Function Rating Maintainability Complexity Lines of code
login_header()
B
32 19 101
Two_Factor_Core::user_two_factor_options_update()
B
43 20 46
Two_Factor_Core::login_html()
B
32 12 139
u2flib_server\U2F::doAuthenticate()
B
40 16 57
u2flib_server\U2F::doRegister()
A
38 13 64
Two_Factor_Core::_login_form_validate_2fa()
A
38 12 67
Two_Factor_FIDO_U2F::update_security_key()
A
51 14 23
Two_Factor_Totp::user_two_factor_options()
A
34 3 157
Two_Factor_Core::uninstall()
A
46 10 44
Two_Factor_FIDO_U2F::add_security_key()
A
51 11 24
Two_Factor_Core::user_two_factor_options()
A
44 9 42
Two_Factor_Core::_login_form_revalidate_2fa()
A
43 8 51
Two_Factor_Core::process_provider()
A
46 8 40
Two_Factor_Core::get_provider_for_user()
A
53 9 22
Two_Factor_FIDO_U2F_Admin::show_user_profile()
A
44 7 51
Two_Factor_Core::maybe_show_reset_password_notice()
S
50 7 29
Two_Factor_Core::login_form_validate_2fa()
S
58 8 13
Two_Factor_Core::current_user_can_update_two_factor_options()
S
52 7 25
Two_Factor_FIDO_U2F_Admin::enqueue_assets()
S
40 4 69
Two_Factor_Core::verify_login_nonce()
S
55 7 18
Two_Factor_FIDO_U2F::delete_security_key()
S
50 6 28
Two_Factor_FIDO_U2F_Admin::wp_ajax_inline_save()
S
52 6 25
Two_Factor_Totp::rest_setup_totp()
S
51 6 25
Two_Factor_Core::get_primary_provider_for_user()
S
53 6 23
Two_Factor_Core::get_providers()
S
53 5 22
Two_Factor_Backup_Codes::generate_codes()
S
53 5 21
Two_Factor_Core::render_user_providers_form()
S
44 3 50
Two_Factor_Backup_Codes::rest_generate_codes()
S
47 4 33
Two_Factor_Email::authentication_page()
S
50 4 32
Two_Factor_Core::disable_provider_for_user()
S
58 5 15
Two_Factor_Core::get_providers_classes()
S
58 5 15
Two_Factor_Core::get_available_providers_for_user()
S
58 5 15
Two_Factor_Core::filter_session_information()
S
60 5 14
u2flib_server\U2F::get_certs()
S
60 5 13
Two_Factor_FIDO_U2F_Admin_List_Table::inline_edit()
S
48 3 42
Two_Factor_Backup_Codes::validate_code()
S
60 5 12
Two_Factor_Core::fetch_user()
S
62 5 11
login_footer()
S
49 3 39
Two_Factor_Core::create_login_nonce()
S
53 4 22
Two_Factor_Totp::base32_decode()
S
54 4 20
Two_Factor_FIDO_U2F_Admin_List_Table::column_default()
S
55 4 19
Two_Factor_FIDO_U2F::authentication_page()
S
51 3 31
Two_Factor_Totp::validate_code_for_user()
S
59 4 15
Two_Factor_Core::is_valid_user_action()
S
63 5 10
Two_Factor_Totp::base32_encode()
S
58 4 15
Two_Factor_Core::filter_authenticate()
S
64 5 9
Two_Factor_Core::is_api_request()
S
66 5 9
Two_Factor_Core::login_url()
S
59 4 15
Two_Factor_Totp::pack64()
S
58 4 14
Two_Factor_Core::update_current_user_session()
S
58 4 14
Two_Factor_FIDO_U2F::get_security_keys()
S
61 4 13
Two_Factor_Backup_Codes::user_options()
S
46 1 58
Two_Factor_Provider::sanitize_code_from_request()
S
62 4 11
Two_Factor_Backup_Codes::admin_notices()
S
53 3 26
Two_Factor_Core::show_two_factor_login()
S
61 4 11
Two_Factor_Email::validate_token()
S
62 4 11
Two_Factor_FIDO_U2F_Admin::catch_submission()
S
53 3 23
Two_Factor_Totp::register_rest_routes()
S
46 1 49
Two_Factor_Core::login_form_revalidate_2fa()
S
64 4 8
u2flib_server\U2F::getAuthenticateData()
S
59 3 15
Two_Factor_Core::filter_authenticate_block_cookies()
S
69 4 6
Two_Factor_Totp::get_authcode_valid_ticktime()
S
58 3 14
Two_Factor_Core::get_enabled_providers_for_user()
S
60 3 13
u2flib_server\U2F::pubkey_to_pem()
S
61 3 12
Two_Factor_Core::get_user_settings_page_url()
S
63 3 11
Two_Factor_Core::manage_users_custom_column()
S
62 3 11
Two_Factor_Core::enable_provider_for_user()
S
62 3 11
Two_Factor_Core::maybe_show_last_login_failure_notice()
S
57 2 18
Two_Factor_Totp::calc_totp()
S
56 2 16
Two_Factor_Email::pre_process_authentication()
S
68 3 7
Two_Factor_Email::validate_authentication()
S
68 3 7
Two_Factor_Core::is_user_rate_limited()
S
64 3 9
Two_Factor_Core::rest_api_can_edit_user_and_update_two_factor_options()
S
65 3 9
Two_Factor_FIDO_U2F_Admin::catch_delete_security_key()
S
62 3 10
Two_Factor_Core::get_current_user_session()
S
65 3 9
Two_Factor_Totp::rest_delete_totp()
S
58 2 15
Two_Factor_Core::send_password_reset_emails()
S
66 3 8
Two_Factor_Compat::jetpack_rememberme()
S
67 3 7
Two_Factor_Core::current_user_being_edited()
S
65 3 9
Two_Factor_Core::trigger_user_settings_action()
S
67 3 7
Two_Factor_Provider::get_code()
S
63 3 10
Two_Factor_Core::get_primary_provider_key_selected_for_user()
S
65 3 8
Two_Factor_Backup_Codes::codes_remaining_for_user()
S
67 3 7
Two_Factor_Compat::jetpack_is_sso_active()
S
77 3 3
Two_Factor_Totp::abssort()
S
66 3 8
Two_Factor_Email::user_token_has_expired()
S
66 3 8
Two_Factor_Email::get_user_token()
S
68 3 7
Two_Factor_FIDO_U2F::__construct()
S
58 2 14
Two_Factor_FIDO_U2F::validate_authentication()
S
60 2 13
Two_Factor_Backup_Codes::register_rest_routes()
S
54 1 24
Two_Factor_Core::add_hooks()
S
52 1 23
Two_Factor_Totp::authentication_page()
S
57 1 22
Two_Factor_Core::notify_admin_user_password_reset()
S
57 1 20
Two_Factor_Core::notify_user_password_reset()
S
57 1 19
Two_Factor_FIDO_U2F::enqueue_scripts()
S
60 1 16
Two_Factor_Core::hash_login_nonce()
S
68 2 7
Two_Factor_Email::user_has_token()
S
69 2 7
Two_Factor_Totp::enqueue_assets()
S
64 2 10
Two_Factor_Core::is_current_user_session_two_factor()
S
68 2 7
Two_Factor_Email::user_options()
S
62 1 15
Two_Factor_Core::is_wp_debug()
S
79 2 3
Two_Factor_Backup_Codes::validate_authentication()
S
69 2 7
Two_Factor_Provider::get_instance()
S
67 2 8
Two_Factor_Email::user_token_lifetime()
S
68 2 7
Two_Factor_Backup_Codes::is_available_for_user()
S
71 2 6
Two_Factor_Totp::generate_qr_code_url()
S
58 1 15
Two_Factor_Totp::is_valid_key()
S
68 2 7
Two_Factor_Core::get_user_time_delay()
S
62 2 10
Two_Factor_Totp::validate_authentication()
S
68 2 7
Two_Factor_FIDO_U2F::get_u2f_app_id()
S
66 2 8
Two_Factor_Core::collect_auth_cookie_tokens()
S
70 2 6
u2flib_server\U2F::fixSignatureUnusedBits()
S
69 2 6
Two_Factor_Core::get_user_two_factor_revalidate_url()
S
65 2 9
Two_Factor_Core::rememberme()
S
67 2 7
u2flib_server\U2F::createChallenge()
S
66 2 8
Two_Factor_Core::enable_dummy_method_for_debug()
S
70 2 6
Two_Factor_Core::wp_login()
S
66 2 9
Two_Factor_Core::destroy_current_session_for_user()
S
70 2 6
u2flib_server\U2F::__construct()
S
68 2 7
Two_Factor_Core::show_password_reset_error()
S
61 1 13
Two_Factor_Backup_Codes::authentication_page()
S
60 1 13
Two_Factor_Core::get_user_update_action_url()
S
63 1 12
Two_Factor_Totp::get_alternative_provider_label()
S
79 1 3
Two_Factor_Dummy::authentication_page()
S
69 1 7
Two_Factor_Provider::get_key()
S
80 1 3
Two_Factor_Provider::uninstall_options()
S
81 1 3
Two_Factor_Backup_Codes::uninstall_user_meta_keys()
S
74 1 5
u2flib_server\U2F::base64u_decode()
S
78 1 3
u2flib_server\U2F::base64u_encode()
S
77 1 3
Two_Factor_FIDO_U2F::user_options()
S
72 1 7
Two_Factor_FIDO_U2F::asset_version()
S
80 1 3
Two_Factor_Provider::__construct()
S
82 1 3
Two_Factor_Totp::is_valid_authcode()
S
78 1 3
Two_Factor_Provider::is_supported_for_user()
S
75 1 4
Two_Factor_Totp::generate_key()
S
71 1 5
Two_Factor_Email::delete_token()
S
80 1 3
Two_Factor_Totp::__construct()
S
68 1 7
Two_Factor_Dummy::__construct()
S
75 1 4
Two_Factor_Email::get_label()
S
79 1 3
u2flib_server\RegisterRequest::__construct()
S
77 1 4
Two_Factor_Core::clear_password_reset_notice()
S
79 1 3
Two_Factor_FIDO_U2F::uninstall_user_meta_keys()
S
70 1 7
Two_Factor_Email::__construct()
S
75 1 4
Two_Factor_Provider::uninstall_user_meta_keys()
S
81 1 3
Two_Factor_Totp::set_user_totp_key()
S
79 1 3
Two_Factor_FIDO_U2F_Admin::rename_link()
S
78 1 3
wp_login_viewport_meta()
S
100 1 5
Two_Factor_Provider::is_available_for_user()
S
100 1 0
Two_Factor_Core::reset_compromised_password()
S
64 1 9
Two_Factor_Provider::get_alternative_provider_label()
S
72 1 6
Two_Factor_FIDO_U2F_Admin::add_hooks()
S
64 1 9
Two_Factor_Core::get_supported_providers_for_user()
S
72 1 5
Two_Factor_Provider::print_label()
S
80 1 3
Two_Factor_FIDO_U2F_Admin_List_Table::display_tablenav()
S
91 1 2
Two_Factor_FIDO_U2F_Admin_List_Table::single_row()
S
71 1 7
Two_Factor_Backup_Codes::get_backup_code_length()
S
75 1 4
Two_Factor_Email::get_alternative_provider_label()
S
79 1 3
Two_Factor_Totp::uninstall_user_meta_keys()
S
72 1 6
Two_Factor_Email::get_token_length()
S
75 1 4
Two_Factor_Backup_Codes::get_label()
S
79 1 3
Two_Factor_Totp::delete_user_totp_key()
S
76 1 4
Two_Factor_Dummy::user_options()
S
98 1 1
Two_Factor_Backup_Codes::delete_code()
S
68 1 7
Two_Factor_FIDO_U2F_Admin::asset_version()
S
80 1 3
Two_Factor_Totp::get_label()
S
79 1 3
Two_Factor_Provider::get_label()
S
100 1 0
Two_Factor_Dummy::validate_authentication()
S
82 1 3
Two_Factor_Email::uninstall_user_meta_keys()
S
72 1 6
Two_Factor_Core::is_user_api_login_enabled()
S
78 1 3
Two_Factor_Provider::validate_authentication()
S
100 1 0
Two_Factor_Provider::pre_process_authentication()
S
82 1 3
Two_Factor_Email::generate_and_email_token()
S
65 1 8
Two_Factor_Email::user_token_ttl()
S
71 1 5
Two_Factor_Compat::init()
S
79 1 3
Two_Factor_FIDO_U2F::get_label()
S
79 1 3
Two_Factor_Core::is_user_using_two_factor()
S
75 1 4
Two_Factor_Provider::authentication_page()
S
100 1 0
Two_Factor_FIDO_U2F::get_alternative_provider_label()
S
79 1 3
Two_Factor_Core::should_reset_password()
S
71 1 5
Two_Factor_Totp::is_available_for_user()
S
75 1 4
Two_Factor_Core::delete_login_nonce()
S
79 1 3
u2flib_server\Error::__construct()
S
79 1 3
wp_shake_js()
S
100 1 7
u2flib_server\U2F::getRegisterData()
S
70 1 6
Two_Factor_Backup_Codes::get_alternative_provider_label()
S
79 1 3
Two_Factor_Dummy::get_label()
S
79 1 3
Two_Factor_Email::generate_token()
S
70 1 6
Two_Factor_FIDO_U2F_Admin_List_Table::get_columns()
S
68 1 7
Two_Factor_Core::filter_manage_users_columns()
S
75 1 4
Two_Factor_Email::is_available_for_user()
S
82 1 3
Two_Factor_Backup_Codes::__construct()
S
70 1 6
Two_Factor_Totp::get_user_totp_key()
S
78 1 3
Two_Factor_FIDO_U2F_Admin_List_Table::prepare_items()
S
69 1 7
Two_Factor_FIDO_U2F_Admin::delete_link()
S
70 1 5
Two_Factor_Dummy::is_available_for_user()
S
82 1 3
Two_Factor_Core::get_default_providers()
S
65 1 9
Two_Factor_FIDO_U2F::is_available_for_user()
S
79 1 3