PluginProbe
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot / 4.2.0
BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ & Chatbot v4.2.0
4.9.1 4.9.0 4.8.2 4.8.1 4.8.0 4.7.0 4.6.2 4.6.1 4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 4.5.1 4.5.0 4.4.1 4.4.0 3.3.4 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.5.2 All 199 releases
← All changes | includes/REST/Settings.php +3 -33 4.9.04.2.0 View file →
@@ -12,10 +12,8 @@
12 12 use WPDeveloper\BetterDocs\Core\BaseAPI;
13 13 use WPDeveloper\BetterDocs\Dependencies\DI\DependencyException;
14 14 use WPDeveloper\BetterDocs\Dependencies\DI\NotFoundException;
15 15 use WPDeveloper\BetterDocsChatbot\Core\AIChatbot;
16 -use WPDeveloper\BetterDocs\Core\Settings as CoreSettings;
17 -use WPDeveloper\BetterDocs\Utils\Helper;
18 16
19 17 class Settings extends BaseAPI {
20 18
21 19 public function permission_check(): bool {
@@ -58,9 +56,9 @@
58 56 public function sample_docs( WP_REST_Request $request ) {
59 57 $action = $request->get_param( 'action' );
60 58
61 59 if ( $action == 'create-dummy-data' ) {
62 - $file = BETTERDOCS_ABSPATH . 'assets/static/admin/images/BetterDocs-sample-data.csv';
60 + $file = BETTERDOCS_ABSPATH . 'assets/admin/images/BetterDocs-sample-data.csv';
63 61 $args = [
64 62 'fetch_attachments' => true,
65 63 'action' => '',
66 64 'existing_slug' => '',
@@ -291,41 +289,13 @@
291 289 return true;
292 290 }
293 291
294 292 public function get_settings(): array {
295 - $settings = betterdocs()->settings->get_all( true );
296 -
297 - // Never hand raw API keys back over REST. The route is already gated to
298 - // `edit_docs_settings` (see permission_check() above), but get_all( true ) returned
299 - // UNMASKED values, so an authorized admin still received every key in full — the admin
300 - // UI only ever needs the masked form. Mask for managers, and strip entirely for anyone
301 - // else as defense-in-depth should that capability gate ever loosen. Mirrors the
302 - // admin-page localizer (Core\Settings::enqueue()) so the masked-key save round-trip
303 - // stays consistent.
304 - $sensitive_api_keys = CoreSettings::sensitive_api_key_fields();
305 - $can_manage = current_user_can( 'edit_docs_settings' );
306 - foreach ( $sensitive_api_keys as $api_key_field ) {
307 - if ( ! isset( $settings[ $api_key_field ] ) ) {
308 - continue;
309 - }
310 - if ( ! $can_manage ) {
311 - unset( $settings[ $api_key_field ] );
312 - continue;
313 - }
314 - if ( ! empty( $settings[ $api_key_field ] ) ) {
315 - $settings[ $api_key_field ] = Helper::mask_api_key( $settings[ $api_key_field ] );
316 - }
317 - }
318 -
319 - return $settings;
293 + return betterdocs()->settings->get_all( true );
320 294 }
321 295
322 296 public function save_settings( WP_REST_Request $request ) {
323 - $result = betterdocs()->settings->save_settings( $request->get_params() );
324 - if ( is_wp_error( $result ) ) {
325 - return $this->error( $result->get_error_code(), $result->get_error_message(), 400 );
326 - }
327 - if ( $result ) {
297 + if ( betterdocs()->settings->save_settings( $request->get_params() ) ) {
328 298 return $this->success( __( 'Settings Saved!', 'betterdocs' ) );
329 299 }
330 300
331 301 return $this->error( 'nothing_changed', __( 'There are no changes to be saved.', 'betterdocs' ), 200 );