Ignore:
Timestamp:
07/05/08 10:31:35 (12 years ago)
Author:
domlowe
Message:

Adding security options back in to scanner

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/csmllibs/csmlbuilder.py

    r3288 r3856  
    55    '''this class contains all the method calls to create and populate a csml document. Calling the build method will start the build process 
    66    it needs to be provided with several bits of information to be able to do this. Csmlscan uses this class to run the build process.''' 
    7     def __init__(self,datasetid, directory,selection,csmlft, mapping, timedimension ,outputfile,printscreen,timestorage,spatialstorage,valuestorage, minaxes): 
     7    def __init__(self,datasetid, directory,selection,csmlft, mapping, timedimension ,outputfile,printscreen,timestorage,spatialstorage,valuestorage, minaxes, secallow,secdeny): 
    88        ''' The entry point for building a csml document.  
    99        @param datasetid:   identifier for the Dataset id attributes    
     
    4545        self.valuestorage=valuestorage 
    4646        self.minaxes=minaxes 
     47        self.secallow=secallow 
     48        self.secdeny=secdeny 
    4749        self.csml = None  # csml object holds the csml document in memory. 
    4850        self.ds_element = None #<Dataset> tag, root node. 
     
    5759            print 'error: Cannot find a config file at this location.' 
    5860            raise SystemExit 
    59         #self.addSecurity() 
     61        self.addSecurity() 
    6062        self.createFeatureFileMap() 
    6163        if self.spatialstorage=='fileextract': 
     
    9597        #self.ds.description=csml.parser.Description(strGmlDescription) 
    9698     
    97     #def addSecurity(self):         
    98         #'''Adds NDG style AccessControlPolicy to the dataset based on info in config file''' 
    99         #def _buildSimpleCondition(condition): 
    100             ##builds the tag structure for a SimpleCondition 
    101             #scond=csml.parser.SimpleCondition() 
    102             #parts=condition.split(' ') 
    103             #attauth=csml.parser.csString(parts[0]) 
    104             #role=csml.parser.csString(parts[1])  
    105             #scond.attrauthRole=role 
    106             #scond.dgAttributeAuthority=attauth 
    107             #return scond 
    108          
    109         ##don't do anything if no config options are set. 
    110         #if not self.secallow: 
    111             #if not self.secdeny: 
    112                 #return None 
     99    def addSecurity(self):         
     100        '''Adds NDG style AccessControlPolicy to the dataset based on info in config file''' 
     101        def _buildSimpleCondition(condition): 
     102            #builds the tag structure for a SimpleCondition 
     103            scond=csml.parser.SimpleCondition() 
     104            parts=condition.split(' ') 
     105            attauth=csml.parser.csString(parts[0]) 
     106            role=csml.parser.csString(parts[1])  
     107            scond.attrauthRole=role 
     108            scond.dgAttributeAuthority=attauth 
     109            return scond 
     110         
     111        #don't do anything if no config options are set. 
     112        if not self.secallow: 
     113            if not self.secdeny: 
     114                return None 
    113115            
    114116         
    115         #acp=csml.parser.AccessControlPolicy() 
    116         #if self.secallow: 
    117             #for condition in self.secallow.split(','): 
    118                 #dgSecurityCondition=csml.parser.DgSecurityCondition() 
    119                 #dgSecurityCondition.effect=csml.parser.csString('allow') 
    120                 #dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
    121                 #acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
    122         #if self.secdeny: 
    123             #for condition in self.secallow.split(','): 
    124                 #dgSecurityCondition=csml.parser.DgSecurityCondition() 
    125                 #dgSecurityCondition.effect=csml.parser.csString('deny') 
    126                 #dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
    127                 #acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
    128         #self.ds.accessControlPolicy=acp        
     117        acp=csml.parser.AccessControlPolicy() 
     118        if self.secallow: 
     119            for condition in self.secallow.split(','): 
     120                dgSecurityCondition=csml.parser.DgSecurityCondition() 
     121                dgSecurityCondition.effect=csml.parser.csString('allow') 
     122                dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
     123                acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
     124        if self.secdeny: 
     125            for condition in self.secallow.split(','): 
     126                dgSecurityCondition=csml.parser.DgSecurityCondition() 
     127                dgSecurityCondition.effect=csml.parser.csString('deny') 
     128                dgSecurityCondition.addChildElem('simpleCondition', _buildSimpleCondition(condition)) 
     129                acp.addChildElem('dgSecurityCondition', dgSecurityCondition) 
     130        self.ds.accessControlPolicy=acp        
    129131         
    130132    def createFeatureFileMap(self): 
Note: See TracChangeset for help on using the changeset viewer.