fix(captcha): close human-verification loop end-to-end
Rewrite captcha core around aksrt_captcha_config only, require captcha on login/comment/SMS/phone auth and related gates, wire frontend token collection, and remove dead dual-source security settings plus slider enqueue.
This commit is contained in:
@@ -173,8 +173,12 @@ class AKSRT_Admin_Extension_Controller extends AKSRT_Admin_Controller_Base {
|
||||
$email_gate_enabled = false;
|
||||
}
|
||||
|
||||
$captcha_comment_enabled = !empty($settings['captcha_comment_enabled']);
|
||||
$captcha_download_enabled = !empty($settings['captcha_download_enabled']);
|
||||
$captcha_summary = function_exists('aksrt_get_captcha_status_summary')
|
||||
? aksrt_get_captcha_status_summary()
|
||||
: ['enabled' => false, 'configured' => false, 'scenes' => []];
|
||||
$captcha_comment_enabled = !empty($captcha_summary['scenes']['comment']);
|
||||
$features = class_exists('AKSRT_Settings') ? AKSRT_Settings::get_cms_features() : [];
|
||||
$captcha_download_enabled = !empty($features['download_captcha']) && !empty($captcha_summary['scenes']['download']);
|
||||
|
||||
$risk_switches = [
|
||||
'show_unapproved_comments' => !empty($settings['show_unapproved_comments']),
|
||||
@@ -191,7 +195,8 @@ class AKSRT_Admin_Extension_Controller extends AKSRT_Admin_Controller_Base {
|
||||
'content_audit_configured' => !empty($services['audit']['configured']),
|
||||
'ip_geo_enabled' => !empty($services['ip_geo']['enabled']),
|
||||
'ip_geo_configured' => !empty($services['ip_geo']['configured']),
|
||||
'captcha_enabled' => $captcha_comment_enabled || $captcha_download_enabled,
|
||||
'captcha_enabled' => !empty($captcha_summary['enabled']) && !empty($captcha_summary['configured']),
|
||||
'captcha_summary' => $captcha_summary,
|
||||
'risk_switches' => $risk_switches,
|
||||
'services' => $services,
|
||||
],
|
||||
@@ -452,17 +457,19 @@ class AKSRT_Admin_Extension_Controller extends AKSRT_Admin_Controller_Base {
|
||||
$services['wechat'] = ['enabled' => false, 'provider' => '', 'configured' => false, 'available' => false, 'verified' => false, 'transport' => '', 'missing_fields' => []];
|
||||
}
|
||||
|
||||
// Captcha
|
||||
$settings = AKSRT_Settings::get_all();
|
||||
$captcha_en = class_exists('AKSRT_Captcha') && !empty($settings['captcha_enabled']);
|
||||
// Captcha — 唯一真相源 aksrt_captcha_config
|
||||
$captcha = function_exists('aksrt_get_captcha_status_summary')
|
||||
? aksrt_get_captcha_status_summary()
|
||||
: ['enabled' => false, 'provider' => '', 'configured' => false, 'scenes' => []];
|
||||
$services['captcha'] = [
|
||||
'enabled' => $captcha_en,
|
||||
'provider' => sanitize_key((string) ($settings['captcha_provider'] ?? '')),
|
||||
'configured' => $captcha_en,
|
||||
'available' => $captcha_en,
|
||||
'enabled' => !empty($captcha['enabled']) && !empty($captcha['configured']),
|
||||
'provider' => (string) ($captcha['provider'] ?? ''),
|
||||
'configured' => !empty($captcha['configured']),
|
||||
'available' => !empty($captcha['configured']),
|
||||
'verified' => false,
|
||||
'transport' => 'http_api',
|
||||
'missing_fields' => [],
|
||||
'scenes' => $captcha['scenes'] ?? [],
|
||||
];
|
||||
|
||||
// IP Geo
|
||||
|
||||
Reference in New Issue
Block a user