[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