From ecc0f70e4520a0b48b3ff8f4c6aa65948c951574 Mon Sep 17 00:00:00 2001 From: grahams Date: Tue, 3 Feb 2009 23:03:30 -0500 Subject: [PATCH] Fixed handling of security/allowmask tags Added cli flag for omitting/including secure entries. Flag kinda wonky Going to replace all the CLI arg parsing with getopt --- convertdump.py | 49 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/convertdump.py b/convertdump.py index e2906dc..5ea7600 100755 --- a/convertdump.py +++ b/convertdump.py @@ -65,13 +65,12 @@ def appendTextNode(doc, parent, nodename, value): parent.appendChild(element) -def addEntryForId(outDoc, element, username, id): +def addEntryForId(outDoc, element, username, id, includeSecure): entryFile = open("%s/L-%s" % (username,id), "r") inDoc = xml.dom.minidom.parse(entryFile) # Create an entry element entry = outDoc.createElement("entry") - element.appendChild(entry) # Create an itemid element appendTextNode(outDoc, entry, "itemid", getNodeText(inDoc,"itemid")) @@ -87,15 +86,28 @@ def addEntryForId(outDoc, element, username, id): event = inDoc.getElementsByTagName("event")[0] appendTextNode(outDoc, entry, "event", getNodeText(event, "event")) - # Create an allowmask element (doesn't exist in pydump output if public) - maskText = getNodeText(inDoc, "allowmask") + security = getNodeText(inDoc, "security") - # XXXSMG: consult L-1411 and L-976 for examples of security and - # allowmask use - if(maskText != ""): - appendTextNode(outDoc, entry, "allowmask", maskText) - else: - appendTextNode(outDoc, entry, "allowmask", "0") + if(security != ""): + # don't append this entry unless the user provided the argument + if(includeSecure == False): + print("omitting secure entry: L-%s" % id) + return + else: + if(security == "usemask"): + print("including allowmask entry: L-%s" % id) + + # Create an allowmask element + maskText = getNodeText(inDoc, "allowmask") + + if(maskText != ""): + appendTextNode(outDoc, entry, "allowmask", maskText) + else: + appendTextNode(outDoc, entry, "allowmask", "0") + else: + print("including private entry: L-%s" % id) + + appendTextNode(outDoc, entry, "security", security) # Create a taglist element appendTextNode(outDoc, entry, "taglist", getNodeText(inDoc, "taglist")) @@ -104,6 +116,8 @@ def addEntryForId(outDoc, element, username, id): # with it addCommentsForId(outDoc, entry, username, id) + element.appendChild(entry) + def addCommentsForId(outDoc, entry, username, id): try: commentFile = open("%s/C-%s" % (username,id), "r") @@ -160,15 +174,23 @@ def addCommentsForId(outDoc, entry, username, id): def main(argv): username = "" entryLimit = 250 + includeSecure = False; - - if( len(argv) != 2 ): + if( len(argv) < 2 ): print( "Usage: convertdump.py " ) return else: username = argv[0] entryLimit = int(argv[1]) + try: + includeSecure = bool(argv[2]) + except IndexError: + includeSecure = False + + if(includeSecure == True): + print( "Warning: Including secure entries in XML output" ) + userDir = os.listdir(username) highNum = -1 @@ -186,7 +208,6 @@ def main(argv): entryArray.sort() - # Create the minidom document outDoc = xml.dom.minidom.Document() @@ -198,7 +219,7 @@ def main(argv): # start processing entries for entry in entryArray: - addEntryForId(outDoc, ljElement, username, entry) + addEntryForId(outDoc, ljElement, username, entry, includeSecure) currentFileEntry += 1 -- 2.39.5