[TikiWiki-commits] [Git][tikiwiki/tiki][master] [FIX] Improve parameter validation in wikiplugin_tikimanagerclone

Benoit Grégoire (@benoitg) via TikiWiki-cvs <[email protected]>
Newsgroups gmane.comp.cms.tiki.cvs
Message-ID <699e2bc95edc5_3b18784c95593@gitlab-sidekiq-low-urgency-cpu-bound-v2-67c859696d-kwsrm.mail>

Benoit Grégoire pushed to branch master at Tiki Wiki CMS Groupware / Tiki


Commits:
5fb24b98 by Yves Ngalamulume at 2026-02-24T22:44:57+00:00
[FIX] Improve parameter validation in wikiplugin_tikimanagerclone
---
* [FIX] Update validateRequiredParams to avoid modifying original parameters

* [FIX] Refactor parameter validation in wikiplugin_tikimanagerclone to use helper function

* [FIX] Refactor parameter validation in wikiplugin_tikimanagerclone to use helper function

* [FIX] Improve parameter validation in wikiplugin_tikimanagerclone

* [FIX] Improve parameter validation in wikiplugin_tikimanagerclone

* [FIX] Improve parameter validation in wikiplugin_tikimanagerclone

See merge request tikiwiki/tiki!9625

- - - - -


2 changed files:

- lib/core/WikiPlugin/Helper.php
- lib/wiki-plugins/wikiplugin_tikimanagerclone.php


Changes:

=====================================
lib/core/WikiPlugin/Helper.php
=====================================
@@ -84,4 +84,38 @@ class WikiPlugin_Helper
 
         return $params;
     }
+
+    /**
+     * Validate required parameters for a plugin.
+     *
+     * Checks for empty values (after trimming) but does not modify
+     * the original parameter array.
+     *
+     * @param string $pluginName Name of the plugin
+     * @param array  $params Parameters to validate
+     * @return array List of missing required parameters
+     */
+    public static function validateRequiredParams(string $pluginName, array $params): array
+    {
+        $infoFunction = "wikiplugin_{$pluginName}_info";
+
+        if (! function_exists($infoFunction)) {
+            return [];
+        }
+
+        $info = $infoFunction();
+        $missing = [];
+
+        foreach ($info['params'] ?? [] as $key => $definition) {
+            if (! empty($definition['required'])) {
+                $value = trim($params[$key] ?? '');
+
+                if ($value === '') {
+                    $missing[] = $key;
+                }
+            }
+        }
+
+        return $missing;
+    }
 }


=====================================
lib/wiki-plugins/wikiplugin_tikimanagerclone.php
=====================================
@@ -170,6 +170,15 @@ function wikiplugin_tikimanagerclone($data, $params)
         return;
     }
 
+    $missing = WikiPlugin_Helper::validateRequiredParams('tikimanagerclone', $params);
+
+    if ($missing) {
+        return WikiParser_PluginOutput::error(
+            tra('Error'),
+            tra('Missing required parameter(s): ') . implode(', ', $missing)
+        );
+    }
+
     try {
         $utilities = new Services_Manager_Utilities();
         $utilities->tikiManagerCheck();



View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/5fb24b98a2cc4c553d64b856de7be15aa19ded2e

-- 
View it on GitLab: https://gitlab.com/tikiwiki/tiki/-/commit/5fb24b98a2cc4c553d64b856de7be15aa19ded2e
You're receiving this email because of your account on gitlab.com. Manage all notifications: https://gitlab.com/-/profile/notifications | Help: https://gitlab.com/help

_______________________________________________
TikiWiki-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tikiwiki-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.