feat: jedes Divi-Tool und lit/content-create erklärt seine Divi-Fähigkeiten (RequiresDiviFeatures, DeclaresRequirements, FeatureSets); Tabelle Tool → Fähigkeiten als Test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
e387d8d29e
commit
fdbda8012c
@@ -11,6 +11,8 @@ use LIT\MCP\Abilities\JsonMap;
|
||||
use LIT\MCP\Integrations\Divi\Compose\DynamicContentRules;
|
||||
use LIT\MCP\Integrations\Divi\Compose\Placeholders;
|
||||
use LIT\MCP\Integrations\Divi\Library\DiviRoles;
|
||||
use LIT\MCP\Integrations\Divi\Release\DiviFeature;
|
||||
use LIT\MCP\Integrations\Divi\Release\RequiresDiviFeatures;
|
||||
use LIT\MCP\Integrations\WordPress\PostGuard;
|
||||
use LIT\MCP\Integrations\WordPress\Schema\ContentSchema;
|
||||
use WP_Error;
|
||||
@@ -28,7 +30,7 @@ defined('ABSPATH') || exit;
|
||||
* left out with its reason (DynamicFields). Hidden fields (security audit M4) are neither offered nor
|
||||
* named. The field list needs the Divi role option read_dynamic_content_custom_fields (E3, F25).
|
||||
*/
|
||||
final class DiviDynamicSourcesAbility implements Ability
|
||||
final class DiviDynamicSourcesAbility implements Ability, RequiresDiviFeatures
|
||||
{
|
||||
/** Candidates the default sample lookup checks for edit_post. */
|
||||
private const SAMPLE_CANDIDATES = 10;
|
||||
@@ -130,6 +132,15 @@ final class DiviDynamicSourcesAbility implements Ability
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Divi's dynamic content registry (DynamicSources); listing custom fields asks the role option
|
||||
* read_dynamic_content_custom_fields (Roles) and omits them without it, so a broken roles check must not pass.
|
||||
*/
|
||||
public function diviFeatures(array $input): array
|
||||
{
|
||||
return [DiviFeature::DynamicSources, DiviFeature::Roles];
|
||||
}
|
||||
|
||||
public function permission(array $input): bool|WP_Error
|
||||
{
|
||||
$type = PostGuard::postType($input['post_type'] ?? null, $this->schema, 'edit_posts');
|
||||
|
||||
Reference in New Issue
Block a user