Code Analysis: Login Security Solution 0.56.0

Function Rating Maintainability Complexity Lines of code
login_security_solution::validate_pw()
D
28
38 146
login_security_solution_admin::validate()
B
36 19 87
login_security_solution::is_pw_like_user_data()
B
44 21 53
login_security_solution::normalize_ipv6()
B
40 18 58
login_security_solution::process_login_success()
B
40 15 62
login_security_solution::check()
A
45 15 41
login_security_solution::msg()
A
47 15 33
login_security_solution::hsc_db()
A
45 14 44
login_security_solution_admin::activate()
A
42 12 51
login_security_solution_admin::validate_pw_force_change()
A
43 11 53
login_security_solution::__construct()
A
39 10 63
login_security_solution::call_sleep()
A
49 9 31
login_security_solution::is_pw_sequential_file()
A
49 9 31
login_security_solution::user_profile_update_errors()
A
53 9 22
login_security_solution_admin::set_fields()
A
32 1 142
login_security_solution::login_message()
A
47 8 37
login_security_solution::redirect_to_login()
A
49 8 29
login_security_solution::is_pw_dict_program()
A
51 8 27
login_security_solution::is_pw_missing_upper_lower_chars()
A
53 8 24
login_security_solution::initialize()
A
47 7 34
login_security_solution::process_login_fail()
A
49 7 32
login_security_solution::split_types()
S
51 7 27
login_security_solution::login_errors()
S
52 7 24
login_security_solution::has_match()
S
55 7 22
login_security_solution_admin::admin_notices_disable_logins()
S
51 6 28
login_security_solution::notify_fail()
S
45 5 41
login_security_solution::authenticate()
S
55 6 21
login_security_solution::notify_breach_user()
S
49 5 30
login_security_solution::notify_breach()
S
45 4 41
login_security_solution::get_login_fail()
S
48 4 36
login_security_solution::get_network_ip()
S
57 5 17
login_security_solution_admin::__call()
S
59 5 16
login_security_solution::is_pw_reused()
S
59 5 15
login_security_solution_admin::force_change_for_all()
S
52 4 26
login_security_solution::password_reset()
S
54 4 20
login_security_solution::save_verified_ip()
S
57 4 17
login_security_solution::auth_cookie_bad()
S
58 4 17
login_security_solution::is_idle()
S
59 4 15
login_security_solution::normalize_ipv4()
S
59 4 15
login_security_solution_admin::page_pw_force_change()
S
46 2 44
login_security_solution::delete_last_active()
S
60 4 14
login_security_solution::is_pw_dictionary__file_parse_dir()
S
60 4 14
login_security_solution::is_pw_expired()
S
60 4 14
TestCase::setUp()
S
50 3 29
login_security_solution::normalize_ip()
S
60 4 14
login_security_solution::wp_login_failed()
S
61 4 13
login_security_solution::is_pw_like_bloginfo()
S
63 4 12
AuthCookieBadTest::setUp()
S
51 3 27
login_security_solution_admin::admin_init()
S
47 2 41
TestCase::check_fail_record()
S
51 3 25
login_security_solution::insert_fail()
S
55 3 20
login_security_solution_admin::deactivate()
S
56 3 19
PasswordValidationTest::test_missing_upper_lower_chars_false()
S
59 3 15
TestCase::check_mail_file()
S
58 3 15
TestCase::mail_to_file()
S
58 3 14
login_security_solution_admin::input_radio()
S
59 3 14
PasswordValidationTest::test_dict_program_false()
S
61 3 13
login_security_solution::check_pw_grace_period()
S
60 3 13
login_security_solution::save_pw_hash()
S
60 3 13
login_security_solution::set_options()
S
61 3 13
PasswordValidationTest::test_dict_program_true()
S
61 3 12
TestCase::set_up_before_class()
S
61 3 12
login_security_solution::is_pw_sequential_codepoints()
S
61 3 12
LoginFailTest::test_wp_login__post_breach_threshold_verified_ip_old()
S
52 2 25
LoginFailTest::test_wp_login__post_breach_threshold_only_force()
S
53 2 23
LoginFailTest::setUp()
S
53 2 22
login_security_solution_admin::admin_notices_pw_force_change()
S
55 2 21
LoginFailTest::test_wp_login__post_breach_threshold_verified_ip_new()
S
54 2 20
PasswordValidationTest::test_missing_punct_chars_true()
S
56 2 19
PasswordValidationTest::test_missing_upper_lower_chars_true()
S
56 2 19
PasswordValidationTest::test_like_user_data_true()
S
57 2 18
login_security_solution_admin::__construct()
S
56 2 18
PasswordValidationTest::test_missing_upper_lower_chars_true__nomb()
S
57 2 18
LoginFailTest::test_wp_login__post_breach_threshold_verified_ip_safe()
S
56 2 18
LoginFailTest::test_wp_login__post_breach_threshold_only_notify()
S
56 2 18
PasswordChangeTest::setUp()
S
56 2 18
login_security_solution::is_login_fail_exact_match()
S
57 2 17
PasswordValidationTest::test_missing_numeric_true()
S
58 2 17
PasswordValidationTest::test_split_types_default3()
S
57 2 17
LoginFailTest::test_process_login_fail__post_threshold_multiple_on()
S
57 2 17
LoginFailTest::test_wp_login__post_breach_threshold()
S
57 2 17
LoginFailTest::test_wp_login__post_breach_threshold_no_action()
S
56 2 17
login_security_solution::get_notify_counts()
S
57 2 17
IpTest::data_ipv6()
S
48 1 31
VerifiedIpTest::test_save_verified_ip__overflow()
S
50 1 31
login_security_solution::get_pw_hashes()
S
65 3 9
TestCase::expected_errors_handler()
S
65 3 9
login_security_solution::xmlrpc_enabled()
S
65 3 9
login_security_solution::process_pw_metadata()
S
64 3 10
login_security_solution::auth_cookie_expired()
S
63 3 10
login_security_solution::get_verified_ips()
S
65 3 9
PasswordValidationTest::test_split_types_5()
S
59 2 14
PasswordValidationTest::test_like_bloginfo_true()
S
60 2 14
PasswordValidationTest::test_sequential_codepoints_true()
S
60 2 14
PasswordValidationTest::test_sequential_file_true()
S
60 2 14
PasswordValidationTest::test_validate_pw__short_mb()
S
59 2 14
PasswordValidationTest::test_validate_pw__dict()
S
59 2 14
VerifiedIpTest::test_profile_update__normal()
S
59 2 14
PasswordValidationTest::test_missing_numeric_false()
S
61 2 13
PasswordValidationTest::test_missing_punct_chars_false()
S
61 2 13
LoginFailTest::test_process_login_fail__post_threshold()
S
60 2 13
LoginFailTest::test_process_login_fail__post_threshold_force_change_off()
S
60 2 13
LoginFailTest::test_process_login_fail__tier_dos()
S
60 2 13
login_security_solution_admin::page_settings()
S
61 2 12
PasswordValidationTest::test_missing_upper_lower_chars_false__nomb()
S
62 2 12
LoginFailTest::test_process_login_fail__post_threshold_multiple_off()
S
61 2 12
PasswordChangeTest::setUpBeforeClass()
S
62 2 12
PasswordValidationTest::test_outside_ascii_false()
S
63 2 11
PasswordValidationTest::test_sequential_codepoints_false()
S
63 2 11
PasswordValidationTest::test_sequential_file_false()
S
63 2 11
PasswordValidationTest::test_strip_nonword_chars()
S
63 2 11
PasswordValidationTest::test_validate_pw__good()
S
62 2 11
login_security_solution::delete_login_fail_old()
S
63 2 11
PasswordChangeTest::test_password_reset__bad_pw()
S
54 1 21
login_security_solution_admin::admin_init_pw_force_change()
S
59 1 19
LoginErrorsTest::setUp()
S
55 1 19
PasswordChangeTest::test_password_reset__reused_pw()
S
56 1 18
PasswordExpirationTest::test_check__post_expiration_grace_expired()
S
56 1 17
IdleTest::test_delete_last_active__user_name()
S
57 1 17
login_security_solution_admin::section_login()
S
58 1 17
PasswordExpirationTest::test_check__post_expiration_first()
S
57 1 16
IdleTest::test_check__fail()
S
57 1 16
LoginFailTest::test_get_login_fail__empty_ip()
S
58 1 16
TestCase::are_transactions_available()
S
64 2 9
TestCase::is_fail_table_configured()
S
64 2 9
TestCase::wp_redirect()
S
68 2 7
login_security_solution::load_plugin_textdomain()
S
70 2 6
login_security_solution::log()
S
66 2 7
login_security_solution::pw_policy_rewrite()
S
65 2 10
LoginFailTest::test_process_login_fail__post_threshold_not_modulus()
S
63 2 10
login_security_solution::get_admin_email()
S
69 2 7
login_security_solution::is_pw_dictionary__file()
S
71 2 6
login_security_solution::get_ip()
S
71 2 6
login_security_solution::strlen()
S
70 2 7
login_security_solution::substr()
S
69 2 7
login_security_solution::author_query_redirect()
S
71 2 6
AuthCookieBadTest::test_bad_user()
S
57 1 15
AuthCookieBadTest::test_bad_pass()
S
57 1 15
DisableLoginTest::test_disable_login__true()
S
58 1 15
PasswordValidationTest::setUpBeforeClass()
S
67 2 8
PasswordValidationTest::test_dictionary__file_false()
S
64 2 10
PasswordValidationTest::test_like_bloginfo_false()
S
64 2 10
PasswordValidationTest::test_like_user_data_false()
S
64 2 10
PasswordValidationTest::test_outside_ascii_true()
S
64 2 10
PasswordValidationTest::test_dictionary__file_true()
S
64 2 10
TestCase::tearDownAfterClass()
S
69 2 7
TestCase::tearDown()
S
69 2 7
LoginMessageTest::test_login_message__disable_logins__key()
S
59 1 14
AuthCookieBadTest::test_direct()
S
59 1 14
AuthCookieBadTest::test_empty_user()
S
59 1 14
AuthCookieBadTest::test_empty_pass()
S
59 1 14
PasswordExpirationTest::test_redirect_to_login__other()
S
60 1 13
PasswordForceChangeTest::test_check__post_threshold()
S
60 1 13
IdleTest::test_auth_cookie_expired__normal()
S
60 1 13
LoginFailTest::test_wp_login__login_fail_minutes_disabled()
S
60 1 13
PasswordChangeTest::test_password_reset__options_0()
S
60 1 13
PasswordValidationTest::test_validate_pw__short_nomb()
S
61 1 12
IpTest::data_ipv4()
S
61 1 12
LoginMessageTest::test_login_message__idle()
S
61 1 12
LoginMessageTest::test_login_message__pw_grace()
S
61 1 12
PasswordChangeTest::test_profile_update__reused()
S
61 1 12
PasswordValidationTest::setUp()
S
63 1 11
PasswordValidationTest::test_validate_pw__nopunct()
S
62 1 11
PasswordValidationTest::test_validate_pw__ascii()
S
62 1 11
PasswordValidationTest::test_validate_pw__noupperlower()
S
62 1 11
PasswordValidationTest::test_validate_pw__sequentialfile()
S
63 1 11
PasswordValidationTest::test_validate_pw__sequentialcodepoints()
S
63 1 11
PasswordValidationTest::test_validate_pw__bloginfo()
S
62 1 11
PasswordValidationTest::test_validate_pw__userdata_leet()
S
63 1 11
PasswordValidationTest::test_validate_pw__notset()
S
63 1 11
PasswordValidationTest::test_validate_pw__nonumbers()
S
62 1 11
IdleTest::test_is_idle__add()
S
62 1 11
LoginFailTest::test_get_login_fail()
S
63 1 11
PasswordValidationTest::test_validate_pw__userdata()
S
63 1 11
LoginMessageTest::test_login_message__disable_logins__no_key()
S
62 1 11
login_security_solution_admin::input_string()
S
62 1 11
VerifiedIpTest::test_password_reset__normal()
S
62 1 11
PasswordChangeTest::test_profile_update__short()
S
62 1 11
PasswordValidationTest::test_validate_pw__dictionary()
S
63 1 11
LoginErrorsTest::test_login_errors__bad_name()
S
63 1 10
PasswordChangeTest::test_profile_update__add()
S
65 1 9
LoginMessageTest::test_login_message__pw_force()
S
65 1 8
login_security_solution::set_sleep()
S
81 1 3
PasswordValidationTest::test_validate_pw__good_complex_exempt()
S
65 1 9
IdleTest::test_delete_last_active__user_name_unknown()
S
65 1 9
VerifiedIpTest::test_save_verified_ip__exists()
S
75 1 4
PasswordForceChangeTest::test_get_pw_force_change__true()
S
76 1 4
PasswordChangeTest::test_profile_update__add_reused_okay()
S
65 1 9
PasswordExpirationTest::test_get_pw_grace_period__0()
S
75 1 4
login_security_solution::get_last_active()
S
78 1 3
LoginFailTest::test_is_login_fail_exact_match__login_fail_minutes_disabled()
S
68 1 7
IdleTest::test_set_last_active__update()
S
72 1 5
IpTest::test_get_network_ip__ipv6_remote_addr()
S
72 1 5
Accessor::__get()
S
82 1 3
PasswordExpirationTest::test_check__empty_user()
S
75 1 4
PasswordExpirationTest::test_delete_pw_grace_period__cleanup()
S
75 1 4
PasswordChangeTest::test_profile_update__update_no_id()
S
70 1 6
DisableLoginTest::test_disable_login__false()
S
68 1 7
PasswordChangeTest::test_password_reset__normal()
S
66 1 8
login_security_solution_admin::input_int()
S
63 1 10
login_security_solution_admin::admin_menu_pw_force_change()
S
66 1 10
LoginFailTest::setUpBeforeClass()
S
76 1 4
PasswordChangeTest::test_save_pw_hash__non_array_edge_case()
S
70 1 6
PasswordValidationTest::test_validate_pw__array()
S
64 1 10
PasswordChangeTest::test_is_pw_reused__empty()
S
75 1 4
TestCase::check_no_fail_record()
S
65 1 9
IdleTest::test_get_last_active__empty_1()
S
75 1 4
VerifiedIpTest::test_save_verified_ip__non_array_edge_case()
S
70 1 6
IdleTest::test_is_idle__true()
S
68 1 7
LoginFailTest::test_wp_login__pre_breach_threshold()
S
65 1 8
login_security_solution::pw_policy_establish()
S
74 1 4
LoginErrorsTest::setUpBeforeClass()
S
76 1 4
login_security_solution::get_pw_force_change()
S
78 1 3
login_security_solution::set_pw_grace_period()
S
79 1 3
IdleTest::test_check__empty_user_id()
S
72 1 5
PasswordExpirationTest::test_set_pw_grace_period__update()
S
72 1 5
VerifiedIpTest::setUpBeforeClass()
S
76 1 4
login_security_solution_admin::admin_menu()
S
66 1 10
login_security_solution::md5()
S
79 1 3
PasswordExpirationTest::test_delete_pw_grace_period()
S
75 1 4
IdleTest::test_is_idle__update()
S
68 1 7
LoginErrorsTest::test_login_errors__reset_bad_combo()
S
64 1 9
login_security_solution::get_time()
S
80 1 3
IdleTest::test_check__non_user()
S
72 1 5
IpTest::test_get_network_ip__array_param()
S
75 1 4
LoginErrorsTest::test_login_errors__bad_pw()
S
63 1 10
login_security_solution::strrev()
S
78 1 3
LoginMessageTest::test_login_message__bogus()
S
72 1 5
IpTest::test_get_ip__ipv4()
S
69 1 6
TestCase::expected_errors()
S
75 1 4
IpTest::test_get_network_ip__ipv4_remote_addr()
S
72 1 5
login_security_solution::delete_pw_grace_period()
S
79 1 3
PasswordForceChangeTest::setUpBeforeClass()
S
76 1 4
LoginErrorsTest::err()
S
80 1 3
login_security_solution::set_pw_changed_time()
S
79 1 3
VerifiedIpTest::test_get_verified_ips__one()
S
65 1 9
LoginMessageTest::test_login_message__pw_expired()
S
65 1 8
PasswordExpirationTest::setUpBeforeClass()
S
76 1 4
PasswordChangeTest::test_profile_update__no_pass()
S
70 1 6
login_security_solution::err()
S
72 1 5
PasswordChangeTest::ensure_grace_and_force_are_populated()
S
70 1 6
IdleTest::test_check__okay()
S
68 1 7
PasswordForceChangeTest::test_check__pre_threshold()
S
75 1 4
IpTest::test_get_network_ip__array_remote()
S
72 1 5
login_security_solution::strip_nonword_chars()
S
79 1 3
VerifiedIpTest::test_get_verified_ips__empty()
S
70 1 6
login_security_solution::delete_pw_force_change()
S
79 1 3
Accessor::__set()
S
81 1 3
login_security_solution::split()
S
79 1 3
PasswordExpirationTest::test_check_pw_grace_period__expired()
S
68 1 7
login_security_solution::is_pw_missing_numeric()
S
79 1 3
PasswordChangeTest::test_get_pw_hashes__empty()
S
70 1 6
login_security_solution_admin::was_pw_force_change_done()
S
79 1 3
LoginErrorsTest::test_login_errors__reset_bad_email()
S
64 1 9
PasswordExpirationTest::test_check_pw_grace_period__in_effect()
S
71 1 5
PasswordChangeTest::test_password_reset__nullid()
S
72 1 5
LoginFailTest::test_insert_fail()
S
70 1 6
login_security_solution_admin::plugin_action_links()
S
65 1 9
PasswordValidationTest::test_dict_program__no_file()
S
67 1 8
PasswordChangeTest::ensure_grace_and_force_are_empty()
S
70 1 6
login_security_solution_admin::echo_div()
S
82 1 3
Accessor::get_data_element()
S
80 1 3
VerifiedIpTest::setUp()
S
76 1 4
PasswordChangeTest::err()
S
80 1 3
PasswordChangeTest::test_is_pw_reused__yes()
S
75 1 4
PasswordExpirationTest::test_check_pw_grace_period__unset()
S
75 1 4
PasswordExpirationTest::test_set_pw_changed_time__update()
S
72 1 5
login_security_solution::convert_leet_speak()
S
69 1 5
PasswordExpirationTest::test_is_pw_expired__expired()
S
68 1 7
wp_mail()
S
80 1 3
LoginFailTest::test_process_login_fail__pre_threshold()
S
68 1 7
PasswordValidationTest::err()
S
80 1 3
LoginMessageTest::ours()
S
76 1 4
IdleTest::test_auth_cooke_expired__user_name_unknown()
S
68 1 7
login_security_solution::get_pw_grace_period()
S
78 1 3
IdleTest::test_get_last_active__empty_2()
S
75 1 4
LoginErrorsTest::test_login_errors__nothing()
S
69 1 6
IpTest::test_get_network_ip__ipv6()
S
75 1 4
PasswordForceChangeTest::test_get_pw_force_change__false_1()
S
76 1 4
PasswordValidationTest::test_dict_program__unavailable()
S
73 1 5
login_security_solution::hsc_utf8()
S
79 1 3
IpTest::test_normalize_ipv4()
S
72 1 5
PasswordValidationTest::test_dict_program__bad_file()
S
67 1 8
LoginFailTest::test_process_login_fail__exact_match()
S
72 1 5
PasswordForceChangeTest::test_set_pw_force_change__add()
S
75 1 4
PasswordForceChangeTest::test_get_pw_force_change__false_2()
S
76 1 4
PasswordChangeTest::test_save_pw_hash__exists()
S
75 1 4
login_security_solution::get_pw_changed_time()
S
78 1 3
LoginMessageTest::test_login_message__unset()
S
72 1 5
LoginMessageTest::test_login_message__empty()
S
72 1 5
login_security_solution::get_blogname()
S
79 1 3
IdleTest::test_auth_cooke_expired__user_name_empty()
S
73 1 5
PasswordValidationTest::test_has_match_array()
S
75 1 4
login_security_solution_admin::admin_menu_pw_force_change_hide()
S
80 1 3
login_security_solution::is_pw_dictionary()
S
80 1 3
PasswordExpirationTest::setUp()
S
68 1 7
Accessor::__call()
S
79 1 3
VerifiedIpTest::test_save_verified_ip__new()
S
75 1 4
PasswordValidationTest::test_has_match_empty()
S
75 1 4
LoginErrorsTest::test_login_errors__register()
S
64 1 9
IpTest::test_normalize_ipv6()
S
72 1 5
IpTest::test_get_network_ip__empty()
S
72 1 5
LoginFailTest::test_wp_login__null()
S
75 1 4
login_security_solution::sanitize_whitespace()
S
79 1 3
Accessor::get_time()
S
81 1 3
login_security_solution::comments_open()
S
82 1 3
IpTest::test_get_ip__ipv6()
S
69 1 6
IpTest::test_get_ip__ipv4_array()
S
72 1 5
login_security_solution::set_pw_force_change()
S
79 1 3
PasswordExpirationTest::test_set_pw_changed_time__add()
S
70 1 6
login_security_solution::is_pw_missing_punct_chars()
S
79 1 3
PasswordChangeTest::test_save_pw_hash__new()
S
75 1 4
PasswordExpirationTest::test_get_pw_changed_time__0()
S
75 1 4
PasswordChangeTest::test_save_pw_hash__overflow()
S
64 1 10
PasswordExpirationTest::test_set_pw_grace_period__add()
S
75 1 4
PasswordChangeTest::test_is_pw_reused__no_reuse_count()
S
68 1 7
LoginMessageTest::setUpBeforeClass()
S
76 1 4
login_security_solution::is_pw_dictionary__file_parse_file()
S
74 1 4
login_security_solution::wp_login()
S
80 1 3
login_security_solution_admin::section_retention()
S
72 1 5
PasswordChangeTest::test_get_pw_hashes__onehash()
S
75 1 4
LoginFailTest::test_is_login_fail_exact_match()
S
69 1 6
LoginFailTest::test_get_login_fail_shorter_network()
S
64 1 10
PasswordExpirationTest::test_get_pw_grace_period__something()
S
69 1 6
LoginMessageTest::test_login_message__pw_reset_bad()
S
67 1 7
IpTest::setUpBeforeClass()
S
76 1 4
login_security_solution::password_hint()
S
74 1 4
usage()
S
68 1 8
IdleTest::test_get_last_active__something()
S
69 1 6
PasswordChangeTest::test_is_pw_reused__no()
S
75 1 4
IdleTest::test_delete_last_active__null_both()
S
68 1 7
DisableLoginTest::setUpBeforeClass()
S
76 1 4
DisableLoginTest::test_disable_login__true_but_admin()
S
65 1 9
IdleTest::test_check__empty()
S
75 1 4
IpTest::test_get_network_ip__ipv4()
S
75 1 4
wp_redirect()
S
80 1 3
TestCase::were_expected_errors_found()
S
77 1 4
login_security_solution::set_last_active()
S
79 1 3
IdleTest::test_is_idle__off()
S
68 1 7
login_security_solution::is_pw_outside_ascii()
S
79 1 3
PasswordForceChangeTest::test_delete_pw_force_change()
S
76 1 4
PasswordExpirationTest::test_check__pre_expiration()
S
75 1 4
PasswordExpirationTest::test_get_pw_changed_time__something()
S
65 1 8
AuthCookieBadTest::setUpBeforeClass()
S
76 1 4
PasswordExpirationTest::test_is_pw_expired__new()
S
75 1 4
IdleTest::test_delete_last_active__1()
S
71 1 6
PasswordExpirationTest::test_is_pw_expired__disabled()
S
68 1 7
IdleTest::test_set_last_active__add()
S
75 1 4
IdleTest::setUpBeforeClass()
S
76 1 4
PasswordExpirationTest::test_is_pw_expired__not_expired()
S
75 1 4