Changeset 3474296
- Timestamp:
- 03/04/2026 08:25:36 AM (7 days ago)
- Location:
- griffinforms-form-builder/trunk
- Files:
-
- 9 added
- 9 edited
-
admin/ajax/settings.php (modified) (1 diff)
-
admin/format.php (modified) (1 diff)
-
admin/html/pages/settings/capabilitymatrix.php (added)
-
admin/js/local/capabilitymatrix.php (added)
-
admin/language/capabilitymatrix.php (added)
-
admin/language/pagetitles.php (modified) (1 diff)
-
admin/language/settings.php (modified) (1 diff)
-
admin/pages.php (modified) (1 diff)
-
admin/secure/capabilitymatrix.php (added)
-
admin/views/settings/capabilitymatrix.php (added)
-
config.php (modified) (1 diff)
-
griffinforms.php (modified) (2 diffs)
-
includes/api (added)
-
includes/api/submissionsrest.php (added)
-
includes/security (added)
-
includes/security/capabilities.php (added)
-
log.php (modified) (1 diff)
-
readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
griffinforms-form-builder/trunk/admin/ajax/settings.php
r3299683 r3474296 57 57 wp_die(); 58 58 } 59 60 $group = sanitize_text_field(wp_unslash($_POST['group'])); 61 if ($group === 'capabilitymatrix' && class_exists('\GriffinForms\Includes\Security\Capabilities')) { 62 \GriffinForms\Includes\Security\Capabilities::syncFromSettings(); 63 } 59 64 60 65 $this->response['success'] = true; -
griffinforms-form-builder/trunk/admin/format.php
r3310004 r3474296 43 43 if (file_exists(strtolower($file))) { 44 44 $lang_class = '\GriffinForms\Admin\Language\\' . $type; 45 if (!class_exists($lang_class)) { 46 return; 47 } 48 49 $reflection = new \ReflectionClass($lang_class); 50 if ($reflection->isAbstract() || !$reflection->hasMethod('getInstance')) { 51 return; 52 } 53 45 54 $this->lang = $lang_class::getInstance(); 46 55 } -
griffinforms-form-builder/trunk/admin/language/pagetitles.php
r3421663 r3474296 64 64 return __('Form Themes', 'griffinforms-form-builder'); 65 65 } 66 67 protected function capabilityMatrixTitle() 68 { 69 return __('Capability Matrix', 'griffinforms-form-builder'); 70 } 66 71 } -
griffinforms-form-builder/trunk/admin/language/settings.php
r3455761 r3474296 41 41 return __('Files & Storage', 'griffinforms-form-builder'); 42 42 } 43 44 protected function capabilitymatrixTitle() 45 { 46 return __('Capability Matrix', 'griffinforms-form-builder'); 47 } 43 48 44 49 protected function submitBtnSettings() -
griffinforms-form-builder/trunk/admin/pages.php
r3455761 r3474296 65 65 $settings_files = []; 66 66 $dir = plugin_dir_path(__FILE__) . 'views/settings/'; 67 $ordered = ['general', 'compliance', 'mail', 'payments', ' antispam']; // define desired order67 $ordered = ['general', 'compliance', 'mail', 'payments', 'capabilitymatrix', 'antispam']; // define desired order 68 68 69 69 if (!is_dir($dir)) { -
griffinforms-form-builder/trunk/config.php
r3473315 r3474296 5 5 class Config 6 6 { 7 public const VERSION = '2.3. 4.0';8 public const DB_VER = '2.3. 4.0';7 public const VERSION = '2.3.5.0'; 8 public const DB_VER = '2.3.5.0'; 9 9 public const PHP_REQUIRED = '8.2'; 10 10 public const WP_REQUIRED = '6.2'; -
griffinforms-form-builder/trunk/griffinforms.php
r3473315 r3474296 4 4 * Plugin URI: https://griffinforms.com/ 5 5 * Description: A powerful and flexible form builder for WordPress. Create multi-page forms with drag-and-drop ease, custom validations, and full submission management. 6 * Version: 2.3. 4.06 * Version: 2.3.5.0 7 7 * Requires at least: 6.6 8 8 * Requires PHP: 8.2 … … 114 114 // Register all background process schedulers, such as async email handlers. 115 115 Includes\Schedulers\ProcessScheduler::register(); 116 Includes\Security\Capabilities::registerHooks(); 117 new Includes\Api\SubmissionsRest(); 116 118 117 119 add_action('plugins_loaded', function () { -
griffinforms-form-builder/trunk/log.php
r3455761 r3474296 301 301 'compliance' => 'Compliance', 302 302 'audit' => 'Compliance: Audit', 303 'api_audit' => 'API: Audit', 303 304 ); 304 305 } -
griffinforms-form-builder/trunk/readme.txt
r3473315 r3474296 5 5 Tested up to: 6.9 6 6 Requires PHP: 8.2 7 Stable tag: 2.3. 4.07 Stable tag: 2.3.5.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 174 174 == Changelog == 175 175 176 = 2.3.5.0 – 2026-03-04 = 177 * Feature: Added companion-app-ready submissions API endpoints for folders, forms, submissions, detail, PDF export, share links, and bulk delete. 178 * Feature: Added capability matrix controls for scoped API permissions so read and delete access can be managed independently. 179 * Hardening: Added typed validation failures for API request guardrails (sort/filter/date/per-page) and enforced bulk-delete idempotency contract. 180 * Hardening: Added share-link single-active-token revocation behavior and stronger API access-denied/rate-limit audit events. 181 * Observability: Expanded audit coverage with request correlation IDs, request method/URI metadata, and API-specific audit log categorization. 182 * Fix: Prevented duplicate guardrail audit logs in repeated request lifecycle callbacks. 183 * Fix: Guarded admin language loading path against abstract class instantiation fatal in API list execution paths. 184 176 185 = 2.3.4.0 – 2026-03-03 = 177 186 * Feature: Enhanced Create Form modal with improved template browsing, smoother navigation accents, and clearer search-state guidance. … … 224 233 225 234 == Upgrade Notice == 235 236 = 2.3.5.0 = 237 API readiness and security hardening release: companion-app endpoints, capability matrix permissions, expanded audit diagnostics, and stricter guardrails. Recommended update. 226 238 227 239 = 2.3.4.0 =
Note: See TracChangeset
for help on using the changeset viewer.