gpo: Enable more specific parsers of GPO files
authorGarming Sam <garming@catalyst.net.nz>
Wed, 23 May 2018 01:51:08 +0000 (13:51 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 16 Aug 2018 21:42:21 +0000 (23:42 +0200)
* .pol files
* .ini (and GPT.ini)
* audit.csv
* GptTmpl.inf

.aas is currently not handled.

Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/netcmd/gpo.py

index 2f9e73292720d4a07449621d10a9c667ab0168a1..544c351c31ce888d49cf5670b4ed229ba0598542 100644 (file)
@@ -49,6 +49,11 @@ from samba.ntacls import dsacl2fsacl
 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
+from samba.gp_parse.gp_csv import GPAuditCsvParser
+from samba.gp_parse.gp_inf import GptTmplInfParser
+from samba.gp_parse.gp_aas import GPAasParser
 
 
 def samdb_connect(ctx):
@@ -238,6 +243,19 @@ def parse_unc(unc):
 
 
 def find_parser(name, flags=re.IGNORECASE):
+    if re.match('audit\.csv$', name, flags=flags):
+        return GPAuditCsvParser()
+    if re.match('GptTmpl\.inf$', name, flags=flags):
+        return GptTmplInfParser()
+    if re.match('GPT\.INI$', name, flags=flags):
+        return GPTIniParser()
+    if re.match('.*\.ini$', name, flags=flags):
+        return GPIniParser()
+    if re.match('.*\.pol$', name, flags=flags):
+        return GPPolParser()
+    if re.match('.*\.aas$', name, flags=flags):
+        return GPAasParser()
+
     return GPParser()