From: Garming Sam Date: Wed, 6 Jun 2018 00:57:12 +0000 (+1200) Subject: gp_ini: Add a scripts ini parser for better generalization X-Git-Tag: tdb-1.3.17~2154 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57dd88ce5cde29462b77f2f1a5d0035573721c4e;p=thirdparty%2Fsamba.git gp_ini: Add a scripts ini parser for better generalization We mark the command path argument as a network path. Signed-off-by: Garming Sam Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/gp_parse/gp_ini.py b/python/samba/gp_parse/gp_ini.py index f0ef0b2358c..4bd00c8ccf1 100644 --- a/python/samba/gp_parse/gp_ini.py +++ b/python/samba/gp_parse/gp_ini.py @@ -19,6 +19,7 @@ import codecs import collections +import re from ConfigParser import ConfigParser from xml.etree.ElementTree import Element, SubElement @@ -105,6 +106,20 @@ class GPTIniParser(GPIniParser): encoding = 'utf-8' +class GPScriptsIniParser(GPIniParser): + def build_xml_parameter(self, section_xml, section, key_ini, val_ini): + parent_return = super(GPScriptsIniParser, + self).build_xml_parameter(section_xml, section, + key_ini, val_ini) + + cmdline = re.match('\\d+CmdLine$', key_ini) + if cmdline is not None: + value = parent_return.find('Value') + value.attrib['network_path'] = 'TRUE' + + return parent_return + + class GPFDeploy1IniParser(GPIniParser): def build_xml_parameter(self, section_xml, section, key_ini, val_ini): parent_return = super(GPFDeploy1IniParser, diff --git a/python/samba/netcmd/gpo.py b/python/samba/netcmd/gpo.py index c4d1bd9a1f5..9706ca8a833 100644 --- a/python/samba/netcmd/gpo.py +++ b/python/samba/netcmd/gpo.py @@ -50,7 +50,12 @@ from samba.dcerpc import nbt from samba.net import Net from samba.gp_parse import GPParser, GPNoParserException from samba.gp_parse.gp_pol import GPPolParser -from samba.gp_parse.gp_ini import GPIniParser, GPTIniParser, GPFDeploy1IniParser +from samba.gp_parse.gp_ini import ( + GPIniParser, + GPTIniParser, + GPFDeploy1IniParser, + GPScriptsIniParser +) from samba.gp_parse.gp_csv import GPAuditCsvParser from samba.gp_parse.gp_inf import GptTmplInfParser from samba.gp_parse.gp_aas import GPAasParser @@ -251,6 +256,10 @@ def find_parser(name, flags=re.IGNORECASE): return GptTmplInfParser() if re.match('GPT\.INI$', name, flags=flags): return GPTIniParser() + if re.match('scripts.ini$', name, flags=flags): + return GPScriptsIniParser() + if re.match('psscripts.ini$', name, flags=flags): + return GPScriptsIniParser() if re.match('.*\.ini$', name, flags=flags): return GPIniParser() if re.match('.*\.pol$', name, flags=flags):