From 38b357ced883e9bd0458e1c1235edb1dd6ca0e07 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 22 Jul 2026 22:06:54 +0200 Subject: [PATCH 1/4] global-functions: $ScriptInstallUpdate: also support setting dont-require-permissions --- global-functions.rsc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index cd18cd6f..c5bca30b 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1377,14 +1377,23 @@ :continue; } - :local RequirePolicy ([ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires policy, ") ] ]->"policy"); - :if ([ :len $RequirePolicy ] > 0) do={ - :set ($ScriptVal->"policy") [ :toarray delimiter=";" $RequirePolicy ]; - $LogPrintOnce debug $0 ("New policy for script '" . $ScriptVal->"name" . "': " . $RequirePolicy); + :local RequirePolicy [ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires policy, ") ] ]; + :if ([ :len ($RequirePolicy->"policy") ] > 0) do={ + :set ($ScriptVal->"policy") [ :toarray delimiter=";" \ + ($RequirePolicy->"policy") ]; + $LogPrintOnce debug $0 ("New policy for script '" . $ScriptVal->"name" . \ + "': " . ($RequirePolicy->"policy")); + } + :if ([ :len ($RequirePolicy->"dont-require-permissions") ] > 0) do={ + :set ($ScriptVal->"dont-require-permissions") [ :toarray delimiter=";" \ + ($RequirePolicy->"dont-require-permissions") ]; + $LogPrintOnce debug $0 ("New dont-require-permissions for script '" . $ScriptVal->"name" . \ + "': " . ($RequirePolicy->"dont-require-permissions")); } $LogPrint info $0 ("Updating script: " . $ScriptVal->"name"); /system/script/set owner=($ScriptVal->"name") policy=($ScriptVal->"policy") \ + dont-require-permissions=($ScriptVal->"dont-require-permissions") \ source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script; :if ($ScriptVal->"name" = "global-config" || \ $ScriptVal->"name" = "global-functions" || \ From f877830ed32b767bad91ca357c51e6fd249dbe23 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 22 Jul 2026 22:12:11 +0200 Subject: [PATCH 2/4] mode-button: set dont-require-permissions --- mode-button.rsc | 1 + 1 file changed, 1 insertion(+) diff --git a/mode-button.rsc b/mode-button.rsc index 0870930b..3e2becdb 100644 --- a/mode-button.rsc +++ b/mode-button.rsc @@ -5,6 +5,7 @@ # # requires RouterOS, version=7.22 # requires device-mode, scheduler +# requires policy, dont-require-permissions # # act on multiple mode and reset button presses # https://rsc.eworm.de/doc/mode-button.md From 54e45287a0c3a03e0e6a1d6d074bcfdcf4af7519 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 22 Jul 2026 22:16:48 +0200 Subject: [PATCH 3/4] FIXUP --- global-functions.rsc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index c5bca30b..ba0c8eec 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1387,8 +1387,7 @@ :if ([ :len ($RequirePolicy->"dont-require-permissions") ] > 0) do={ :set ($ScriptVal->"dont-require-permissions") [ :toarray delimiter=";" \ ($RequirePolicy->"dont-require-permissions") ]; - $LogPrintOnce debug $0 ("New dont-require-permissions for script '" . $ScriptVal->"name" . \ - "': " . ($RequirePolicy->"dont-require-permissions")); + $LogPrintOnce debug $0 ("Setting dont-require-permissions for script '" . $ScriptVal->"name" . "'."); } $LogPrint info $0 ("Updating script: " . $ScriptVal->"name"); From 2e4ab307b6ee4eaf8e18a476ddeca187d0e3daf9 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 22 Jul 2026 22:17:25 +0200 Subject: [PATCH 4/4] FIXUP --- global-functions.rsc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index ba0c8eec..f42bb09b 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1385,8 +1385,7 @@ "': " . ($RequirePolicy->"policy")); } :if ([ :len ($RequirePolicy->"dont-require-permissions") ] > 0) do={ - :set ($ScriptVal->"dont-require-permissions") [ :toarray delimiter=";" \ - ($RequirePolicy->"dont-require-permissions") ]; + :set ($ScriptVal->"dont-require-permissions") ($RequirePolicy->"dont-require-permissions"); $LogPrintOnce debug $0 ("Setting dont-require-permissions for script '" . $ScriptVal->"name" . "'."); }