I’m looking to recover from an oversight where I configured write permissions on a tag for several groups but I neglected to check the “AnyOf” radio button and left at the default of ‘AllOf’. I would like to do this via a script. I have written most of the script but it fails when I try to update “type” of the “writePermissions” to “Anyof”. I’m guessing it may be that I am not grouped in all the permission groups at the same time so the security is doing what it is supposed to. I can update it via the designer update screens but not via a script.
This is what I wrote:
def readTags(tagPath) :
wrtConfig = False
wrtList = []
tagList = system.tag.browse(tagPath,filter = {})
for tag in tagList.getResults() :
tagFullPath = str(tag['fullPath'])
# print tag
if tag['hasChildren'] :
rdPath = tag['fullPath']
readTags(rdPath)
continue
try :
attList = tag['attributes']
except :
attList = []
for at in attList :
if str(at).find("security") > -1 :
tc = system.tag.getConfiguration(tagFullPath,False)
try :
wp = tc[0]['writePermissions']
except :
wp=''
if len(str(wp)) > 0 :
if str(wp.type) == "AllOf" :
print tag
print tc
print wp.type, type(wp.type)
wp.type = 'AnyOf' # *** This fails with >> AttributeError: read-only attr: type <<
print wp['type']
wrtList.append(tc[0])
wrtConfig = True
print wrtList
if wrtConfig :
print "tagPath:", tagPath
print "wrtList:", wrtList
# wrt = system.tag.configure(tagPath,wrtList,'m')
tagPath = "[MQTT Engine]Edge Nodes/<rest of tag path>"
readTags(tagPath)
(Hope I did the quoting correctly)