Fixes
This commit is contained in:
@@ -53,6 +53,69 @@ def dump_all_to_log(root):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def site_state(param):
|
||||||
|
"""
|
||||||
|
Get or set the state of a site in sites_settings.cfg.
|
||||||
|
:param param: either a string key or a dict {key: 'on'/'off'}.
|
||||||
|
:return: For string key, returns value string or False if not found.
|
||||||
|
"""
|
||||||
|
config_path = "/usr/local/ispmanager-mod_rewrite/settings/sites_settings.cfg"
|
||||||
|
|
||||||
|
if isinstance(param, str):
|
||||||
|
param_name = param
|
||||||
|
if not os.path.exists(config_path):
|
||||||
|
return "off"
|
||||||
|
try:
|
||||||
|
with open(config_path, 'r', encoding='utf-8') as f:
|
||||||
|
for line in f:
|
||||||
|
stripped = line.strip()
|
||||||
|
if stripped.startswith('#'):
|
||||||
|
continue
|
||||||
|
pattern = rf'^\s*{re.escape(param_name)}\s*=\s*(.*)$'
|
||||||
|
m = re.match(pattern, line)
|
||||||
|
if m:
|
||||||
|
return m.group(1).strip()
|
||||||
|
except Exception:
|
||||||
|
return "off"
|
||||||
|
return "off"
|
||||||
|
|
||||||
|
elif isinstance(param, dict):
|
||||||
|
# Write mode
|
||||||
|
dir_path = os.path.dirname(config_path)
|
||||||
|
try:
|
||||||
|
os.makedirs(dir_path, exist_ok=True)
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
lines = []
|
||||||
|
if os.path.exists(config_path):
|
||||||
|
try:
|
||||||
|
with open(config_path, 'r', encoding='utf-8') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
for key, val in param.items():
|
||||||
|
actual_value = 'on' if val == 'on' else 'off'
|
||||||
|
found = False
|
||||||
|
for idx, line in enumerate(lines):
|
||||||
|
stripped = line.strip()
|
||||||
|
if stripped.startswith('#'):
|
||||||
|
continue
|
||||||
|
pattern = rf'^\s*{re.escape(key)}\s*=\s*.*$'
|
||||||
|
if re.match(pattern, line):
|
||||||
|
lines[idx] = f"{key}={actual_value}\n"
|
||||||
|
found = True
|
||||||
|
break
|
||||||
|
if not found:
|
||||||
|
lines.append(f"{key}={actual_value}\n")
|
||||||
|
try:
|
||||||
|
with open(config_path, 'w', encoding='utf-8') as f:
|
||||||
|
f.writelines(lines)
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
return None
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
def read_global_config(params):
|
def read_global_config(params):
|
||||||
"""
|
"""
|
||||||
Reads or writes a parameter in the global settings configuration file.
|
Reads or writes a parameter in the global settings configuration file.
|
||||||
@@ -270,22 +333,33 @@ if __name__ == "__main__":
|
|||||||
out_error_xml("Access denied")
|
out_error_xml("Access denied")
|
||||||
sok = os.environ.get('PARAM_sok', '')
|
sok = os.environ.get('PARAM_sok', '')
|
||||||
type = os.getenv("EVENT_TYPE")
|
type = os.getenv("EVENT_TYPE")
|
||||||
if sok == 'ok' and type == 'after':
|
|
||||||
domain = os.environ.get('PARAM_elid', '')
|
domain = os.environ.get('PARAM_elid', '')
|
||||||
|
if sok == 'ok' and type == 'after':
|
||||||
path_to_global_config = f'/etc/nginx/vhosts-resources/{domain}'
|
path_to_global_config = f'/etc/nginx/vhosts-resources/{domain}'
|
||||||
nginx_mod_rewrite_plugin_site_edit_enable = os.getenv("PARAM_nginx_mod_rewrite_plugin_site_edit_enable")
|
nginx_mod_rewrite_plugin_site_edit_enable = os.getenv("PARAM_nginx_mod_rewrite_plugin_site_edit_enable")
|
||||||
mod_rewrite_global = read_global_config({'param_name': 'global_mod_rewrite_enable'})
|
mod_rewrite_global = read_global_config({'param_name': 'global_mod_rewrite_enable'})
|
||||||
if nginx_mod_rewrite_plugin_site_edit_enable == "on":
|
if nginx_mod_rewrite_plugin_site_edit_enable == "on":
|
||||||
if mod_rewrite_global in ("1", "on"):
|
if mod_rewrite_global in ("1", "on"):
|
||||||
|
_log("Global state enabled")
|
||||||
new_element = etree.Element("nginx_mod_rewrite_plugin_site_edit_enable")
|
new_element = etree.Element("nginx_mod_rewrite_plugin_site_edit_enable")
|
||||||
new_element.text = "on"
|
new_element.text = "on"
|
||||||
root.append(new_element)
|
root.append(new_element)
|
||||||
|
site_state({ domain: "on"})
|
||||||
else:
|
else:
|
||||||
_log("mod_rewrite should be disbled")
|
_log("mod_rewrite should be disbled")
|
||||||
|
if mod_rewrite_global in ("1", "on"):
|
||||||
|
_log("Global state enabled")
|
||||||
new_element = etree.Element("nginx_mod_rewrite_plugin_site_edit_enable")
|
new_element = etree.Element("nginx_mod_rewrite_plugin_site_edit_enable")
|
||||||
new_element.text = "off"
|
new_element.text = "off"
|
||||||
root.append(new_element)
|
root.append(new_element)
|
||||||
dump_all_to_log(root)
|
site_state({ domain: "off"})
|
||||||
|
else:
|
||||||
|
if domain != "":
|
||||||
|
domain_state = site_state(domain)
|
||||||
|
if domain_state == "on":
|
||||||
|
new_element = etree.Element("nginx_mod_rewrite_plugin_site_edit_enable")
|
||||||
|
new_element.text = "on"
|
||||||
|
root.append(new_element)
|
||||||
elif func == "site.edit":
|
elif func == "site.edit":
|
||||||
_log("site.edit handler")
|
_log("site.edit handler")
|
||||||
etree.dump(root)
|
etree.dump(root)
|
||||||
|
|||||||
Reference in New Issue
Block a user