@@ -1457,6 +1457,7 @@ function spbc_field_options_overview_traffic_light()
14571457
14581458/**
14591459 * Admin callback function - Displays field of Api Key
1460+ * @ToDo unused code?
14601461 */
14611462function spbc_field_key ()
14621463{
@@ -4264,14 +4265,15 @@ function spbc_get_key_auto($direct_call = false)
42644265 $ wpms = SPBC_WPMS && defined ('SUBDOMAIN_INSTALL ' ) && ! SUBDOMAIN_INSTALL ;
42654266 $ white_label = false ;
42664267 $ hoster_api_key = $ spbc ->ms__hoster_api_key ;
4267- $ admin_email = spbc_get_admin_email ();
4268+ $ admin_email = Post:: getString ( ' email ' ) ? Post:: getString ( ' email ' ) : spbc_get_admin_email ();
42684269
42694270 /**
42704271 * Filters the email to get API key
42714272 *
42724273 * @param string email to get API key
42734274 */
42744275 $ filtered_admin_email = apply_filters ('spbc_get_api_key_email ' , $ admin_email );
4276+ $ filtered_admin_email = filter_var ($ filtered_admin_email , FILTER_VALIDATE_EMAIL );
42754277
42764278 $ result = API ::method__get_api_key (
42774279 'security ' ,
@@ -4291,38 +4293,30 @@ function spbc_get_key_auto($direct_call = false)
42914293 $ spbc ->error_add ('get_key ' , $ result );
42924294
42934295 $ out = array (
4294- 'success ' => true ,
4295- 'reload ' => false ,
4296- 'msg ' => $ result ['error ' ]
4296+ 'success ' => false ,
4297+ 'msg ' => isset ($ result ['error_message ' ])
4298+ ? esc_html ($ result ['error_message ' ])
4299+ : $ result ['error ' ]
42974300 );
42984301 } elseif (isset ($ result ['error_no ' ]) && $ result ['error_no ' ] == '403 ' ) {
42994302 $ out = array (
4300- 'success ' => true ,
4301- 'reload ' => false ,
4302- 'error ' => isset ($ result ['error_message ' ]) ? esc_html ($ result ['error_message ' ]) : esc_html ('Our service is not available in your region. ' ),
4303+ 'success ' => false ,
4304+ 'error ' => isset ($ result ['error_message ' ])
4305+ ? esc_html ($ result ['error_message ' ])
4306+ : esc_html ('Our service is not available in your region. ' ),
43034307 );
43044308 } elseif ( ! isset ($ result ['auth_key ' ])) {
43054309 $ out = array (
4306- 'success ' => true ,
4307- 'reload ' => false ,
4310+ 'success ' => false ,
43084311 'msg ' => sprintf (
43094312 __ ('Please, get the Access Key from %s CleanTalk Control Panel %s and insert it in the Access Key field ' , 'cleantalk-spam-protect ' ),
43104313 '<a href="https://cleantalk.org/my/?cp_mode=security" target="_blank"> ' ,
43114314 '</a> '
43124315 )
43134316 );
43144317 } else {
4315- $ settings ['spbc_key ' ] = trim ($ result ['auth_key ' ]);
4316- $ settings ['spbc_key ' ] = preg_match ('/^[a-z\d]*$/ ' , $ settings ['spbc_key ' ]) ? $ settings ['spbc_key ' ] : $ spbc ->settings ['spbc_key ' ]; // Check key format a-z\d
4317- $ settings ['spbc_key ' ] = is_main_site () || $ spbc ->ms__work_mode != 2 ? $ settings ['spbc_key ' ] : $ spbc ->network_settings ['spbc_key ' ];
4318-
4319- $ spbc ->settings ['spbc_key ' ] = $ settings ['spbc_key ' ];
4320- $ spbc ->save ('settings ' );
4321-
4322- $ spbc ->data ['user_token ' ] = (! empty ($ result ['user_token ' ]) ? $ result ['user_token ' ] : '' );
4323- $ spbc ->data ['key_is_ok ' ] = spbc_api_key__is_correct ($ settings ['spbc_key ' ]);
4324- $ spbc ->data ['key_changed ' ] = true ;
4325- $ spbc ->save ('data ' );
4318+ $ user_token = ! empty ($ result ['user_token ' ]) ? $ result ['user_token ' ] : '' ;
4319+ spbc_save_key ($ result ['auth_key ' ], $ user_token , true );
43264320
43274321 $ templates = \CleantalkSP \SpbctWP \CleantalkSettingsTemplates::get_options_template ($ result ['auth_key ' ]);
43284322
@@ -4334,8 +4328,7 @@ function spbc_get_key_auto($direct_call = false)
43344328 );
43354329 } else {
43364330 $ out = array (
4337- 'success ' => true ,
4338- 'reload ' => true ,
4331+ 'success ' => true
43394332 );
43404333 }
43414334 }
@@ -4347,6 +4340,46 @@ function spbc_get_key_auto($direct_call = false)
43474340 die (json_encode ($ out ));
43484341}
43494342
4343+ function spbc_save_key ($ apikey , $ user_token = '' , $ direct_call = false )
4344+ {
4345+ global $ spbc ;
4346+
4347+ if ( ! $ direct_call ) {
4348+ spbc_check_ajax_referer ('spbc_secret_nonce ' , 'security ' );
4349+ $ apikey = Post::getString ('apiKey ' );
4350+ if ( ! spbc_api_key__is_correct ($ apikey ) ) {
4351+ die (
4352+ json_encode (
4353+ [
4354+ 'success ' => false ,
4355+ 'msg ' => __ ('access key format is invalid ' , 'security-malware-firewall ' )
4356+ ]
4357+ )
4358+ );
4359+ }
4360+ }
4361+
4362+ $ settings ['spbc_key ' ] = trim ($ apikey );
4363+ $ settings ['spbc_key ' ] = preg_match ('/^[a-z\d]*$/ ' , $ settings ['spbc_key ' ]) ? $ settings ['spbc_key ' ] : $ spbc ->settings ['spbc_key ' ]; // Check key format a-z\d
4364+ $ settings ['spbc_key ' ] = is_main_site () || $ spbc ->ms__work_mode != 2 ? $ settings ['spbc_key ' ] : $ spbc ->network_settings ['spbc_key ' ];
4365+
4366+ $ spbc ->settings ['spbc_key ' ] = $ settings ['spbc_key ' ];
4367+ $ spbc ->save ('settings ' );
4368+
4369+ $ spbc ->data ['user_token ' ] = ! empty ($ user_token ) ? $ user_token : '' ;
4370+ $ spbc ->data ['key_is_ok ' ] = spbc_api_key__is_correct ($ settings ['spbc_key ' ]);
4371+ $ spbc ->data ['key_changed ' ] = true ;
4372+ $ spbc ->save ('data ' );
4373+
4374+ if ( ! $ direct_call ) {
4375+ die (
4376+ json_encode (
4377+ ['success ' => true ]
4378+ )
4379+ );
4380+ }
4381+ }
4382+
43504383function spbc_settings__update_account_email ($ direct_call = false )
43514384{
43524385 if ( ! $ direct_call ) {
0 commit comments