{"id":296053,"date":"2026-04-08T14:43:31","date_gmt":"2026-04-08T14:43:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ai-not-ai-connector-governance\/"},"modified":"2026-04-08T14:44:12","modified_gmt":"2026-04-08T14:44:12","slug":"handl-ai-connector-access-control","status":"publish","type":"plugin","link":"https:\/\/ug.wordpress.org\/plugins\/handl-ai-connector-access-control\/","author":14684811,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"7.0","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"HandL AI Connector Access Control","header_author":"Haktan Suren","header_description":"Lets administrators allow\/deny which plugins may use the WordPress AI Client. Defaults to allow, with opt-in logging and best-effort attribution.","assets_banners_color":"","last_updated":"2026-04-08 14:44:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.handldigital.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":25,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"haktansuren","date":"2026-04-08 14:44:12"},"1.0.3":{"tag":"1.0.3","author":"haktansuren","date":"2026-04-08 17:11:25"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3501887,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3501887,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2","1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2353,259736,258885,34181,600],"plugin_category":[54],"plugin_contributors":[88321],"plugin_business_model":[],"class_list":["post-296053","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-ai-client","plugin_tags-governance","plugin_tags-handl","plugin_tags-security","plugin_category-security-and-spam-protection","plugin_contributors-haktansuren","plugin_committers-haktansuren"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/handl-ai-connector-access-control\/assets\/icon-128x128.png?rev=3501887","icon_2x":"https:\/\/ps.w.org\/handl-ai-connector-access-control\/assets\/icon-256x256.png?rev=3501887","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>HandL AI Connector Access Control lets administrators allow\/deny AI Client prompt execution on a per-plugin basis using the <code>wp_ai_client_prevent_prompt<\/code> filter introduced with the WordPress AI Client.<\/p>\n\n<p>Default behavior is <strong>allow<\/strong>.<\/p>\n\n<p>Caller attribution is best-effort and is determined by inspecting the PHP call stack and mapping file paths to installed plugins.<\/p>\n\n<h3>Privacy \/ Data<\/h3>\n\n<p>This plugin does not send data to any external service.<\/p>\n\n<p>If you enable <strong>recent-call logging<\/strong> in Settings \u2192 HandL AI Connector Access Control, it stores a local log in the WordPress options table containing:<\/p>\n\n<ul>\n<li>Timestamp<\/li>\n<li>Best-effort calling plugin (plugin basename) and source file<\/li>\n<li>Allow\/deny decision<\/li>\n<li>Current user id<\/li>\n<li>Request URI<\/li>\n<\/ul>\n\n<p>Logging is <strong>disabled by default<\/strong>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/handl-ai-connector-access-control\/<\/code><\/li>\n<li>Activate the plugin through the Plugins screen in WordPress<\/li>\n<li>Go to Settings \u2192 HandL AI Connector Access Control to configure plugin rules<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20stop%20all%20ai%20usage%3F\"><h3>Does this stop all AI usage?<\/h3><\/dt>\n<dd><p>Only AI calls made through the WordPress AI Client APIs that pass through <code>wp_ai_client_prevent_prompt<\/code>.<\/p><\/dd>\n<dt id=\"is%20attribution%20perfect%3F\"><h3>Is attribution perfect?<\/h3><\/dt>\n<dd><p>No. It is best-effort and may be unknown or ambiguous for some execution paths (cron, REST bootstraps, shared libraries, MU plugins).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Renamed plugin to HandL AI Connector Access Control (slug <code>handl-ai-connector-access-control<\/code>). Prefixed options, constants, menus, and forms per WordPress.org guidelines. Migrates settings from previous plugin slugs when present.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release (submitted as AI Not).<\/li>\n<\/ul>","raw_excerpt":"Control which plugins may execute prompts via the WordPress AI Client.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296053"}],"author":[{"embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/haktansuren"}],"wp:attachment":[{"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296053"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296053"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296053"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296053"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296053"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}