Plugin Directory


Ignore:
Timestamp:
10/23/2026 03:27:20 AM (13 days ago)
Author:
TigrouMeow
Message:

Version 3.8.7.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ai-engine/trunk/classes/api.php

    r3733781 r3760851  
    2323   */
    2424  private function sanitize_rest_options( $options ) {
    25     return Meow_MWAI_Core::sanitize_rest_params( $options );
     25    $options = Meow_MWAI_Core::sanitize_rest_params( $options );
     26    // Any logged-in user reaches the Public API by default, and an MCP server attached here
     27    // runs with its stored token (the site's own MCP acts as an admin), so tools stay with
     28    // administrators. The bearer token signs in as one, so it keeps them. Keys compared in
     29    // canonical form, since inject_params() accepts snake_case too (CVE-2026-96561).
     30    if ( !current_user_can( 'manage_options' ) ) {
     31      foreach ( array_keys( $options ) as $key ) {
     32        if ( in_array( strtolower( Meow_MWAI_Query_Base::canonical_key( (string) $key ) ), [ 'mcpservers', 'tools', 'functions' ], true ) ) {
     33          unset( $options[$key] );
     34        }
     35      }
     36    }
     37    return $options;
    2638  }
    2739
    … …  
    460472        $message = isset( $params['prompt'] ) ? $params['prompt'] : '';
    461473      }
    462       $options = isset( $params['options'] ) ? $params['options'] : [];
     474      $options = $this->sanitize_rest_options( isset( $params['options'] ) ? $params['options'] : [] );
    463475      $resolution = isset( $params['resolution'] ) ? $params['resolution'] : '';
    464476      $scope = isset( $params['scope'] ) ? $params['scope'] : 'public-api';
    … …  
    495507      }
    496508      $mediaId = isset( $params['mediaId'] ) ? intval( $params['mediaId'] ) : 0;
    497       $options = isset( $params['options'] ) ? $params['options'] : [];
     509      $options = $this->sanitize_rest_options( isset( $params['options'] ) ? $params['options'] : [] );
    498510      $resolution = isset( $params['resolution'] ) ? $params['resolution'] : '';
    499511      $scope = isset( $params['scope'] ) ? $params['scope'] : 'public-api';
Note: See TracChangeset for help on using the changeset viewer.