]> wagner.pp.ru Git - oss/ljdump.git/commitdiff
Fixed handling of security/allowmask tags
authorgrahams <github@sean-graham.com>
Wed, 4 Feb 2009 04:03:30 +0000 (23:03 -0500)
committergrahams <github@sean-graham.com>
Wed, 4 Feb 2009 04:03:30 +0000 (23:03 -0500)
Added cli flag for omitting/including secure entries.  Flag kinda wonky
Going to replace all the CLI arg parsing with getopt

convertdump.py

index e2906dc70de01517741c19159833e06b9e9c69f2..5ea760087d6a49f03b3d9d2aa46c28c7b1f76ad4 100755 (executable)
@@ -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 <username> <entrylimit>" )
         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