From 575957325ddd7b82e9d47ca2cdb5c5f98d8859fa Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Thu, 8 May 2025 14:13:18 +0300 Subject: [PATCH] Add ability for modules with no ACL to edit config --- config.cgi | 3 ++- config_save.cgi | 3 ++- gray-theme/config.cgi | 7 +++++-- gray-theme/config_save.cgi | 5 ++++- gray-theme/uconfig.cgi | 6 ++++-- gray-theme/uconfig_save.cgi | 5 ++++- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/config.cgi b/config.cgi index c331c0c61..dfd6ecc65 100755 --- a/config.cgi +++ b/config.cgi @@ -10,7 +10,8 @@ require './config-lib.pl'; $m = $in{'module'} || $ARGV[0]; %module_info = &get_module_info($m); %module_info || &error($text{'config_emodule'}); -&foreign_available($m) || &error($text{'config_eaccess'}); +&foreign_available($m) || $module_info{'noacl'} || + &error($text{'config_eaccess'}); %access = &get_module_acl(undef, $m); $access{'noconfig'} && &error($text{'config_ecannot'}); diff --git a/config_save.cgi b/config_save.cgi index c4fb53bb3..f8131b9c4 100755 --- a/config_save.cgi +++ b/config_save.cgi @@ -11,7 +11,8 @@ $m = $in{'module'}; &error_setup($text{'config_err'}); %module_info = &get_module_info($m); %module_info || &error($text{'config_emodule'}); -&foreign_available($m) || &error($text{'config_eaccess'}); +&foreign_available($m) || $module_info{'noacl'} || + &error($text{'config_eaccess'}); %access = &get_module_acl(undef, $m); $access{'noconfig'} && &error($text{'config_ecannot'}); diff --git a/gray-theme/config.cgi b/gray-theme/config.cgi index 5458e796c..1ee2e9322 100755 --- a/gray-theme/config.cgi +++ b/gray-theme/config.cgi @@ -7,11 +7,14 @@ require './config-lib.pl'; &ReadParse(); $m = $in{'module'} || $ARGV[0]; -&foreign_available($m) || &error($text{'config_eaccess'}); +%module_info = &get_module_info($m); +%module_info || &error($text{'config_emodule'}); +&foreign_available($m) || $module_info{'noacl'} || + &error($text{'config_eaccess'}); %access = &get_module_acl(undef, $m); $access{'noconfig'} && &error($text{'config_ecannot'}); -%module_info = &get_module_info($m); + if (-r &help_file($m, "config_intro")) { $help = [ "config_intro", $m ]; } diff --git a/gray-theme/config_save.cgi b/gray-theme/config_save.cgi index b3af5f9e1..69d277ecd 100755 --- a/gray-theme/config_save.cgi +++ b/gray-theme/config_save.cgi @@ -7,7 +7,10 @@ require './config-lib.pl'; &ReadParse(); $m = $in{'module'}; &error_setup($text{'config_err'}); -&foreign_available($m) || &error($text{'config_eaccess'}); +%module_info = &get_module_info($m); +%module_info || &error($text{'config_emodule'}); +&foreign_available($m) || $module_info{'noacl'} || + &error($text{'config_eaccess'}); %access = &get_module_acl(undef, $m); $access{'noconfig'} && &error($text{'config_ecannot'}); diff --git a/gray-theme/uconfig.cgi b/gray-theme/uconfig.cgi index a5608a865..1a741866f 100755 --- a/gray-theme/uconfig.cgi +++ b/gray-theme/uconfig.cgi @@ -6,11 +6,13 @@ require "gray-theme/gray-theme-lib.pl"; require './config-lib.pl'; &ReadParse(); $m = $in{'module'} || $ARGV[0]; -&foreign_available($m) || &error($text{'config_eaccess'}); +%module_info = &get_module_info($m); +%module_info || &error($text{'config_emodule'}); +&foreign_available($m) || $module_info{'noacl'} || + &error($text{'config_eaccess'}); &switch_to_remote_user(); &create_user_config_dirs(); -%module_info = &get_module_info($m); if (-r &help_file($m, "config_intro")) { $help = [ "config_intro", $m ]; } diff --git a/gray-theme/uconfig_save.cgi b/gray-theme/uconfig_save.cgi index 10a9c474c..c9c0584e2 100755 --- a/gray-theme/uconfig_save.cgi +++ b/gray-theme/uconfig_save.cgi @@ -7,7 +7,10 @@ require './config-lib.pl'; &ReadParse(); $m = $in{'module'}; &error_setup($text{'config_err'}); -&foreign_available($m) || &error($text{'config_eaccess'}); +%module_info = &get_module_info($m); +%module_info || &error($text{'config_emodule'}); +&foreign_available($m) || $module_info{'noacl'} || + &error($text{'config_eaccess'}); &switch_to_remote_user(); &create_user_config_dirs();