@@ -123,9 +123,14 @@ def file_import(importFile,mFormat,overwriteFlag,session_id = None):
123123 if overwriteFlag == None :
124124 overwriteFlag = 1
125125
126+ from cairis .core .Borg import Borg
126127 from cairis .mio .ModelImport import importSecurityPatternsFile , importAttackPattern ,importTVTypeFile ,importDirectoryFile ,importRequirementsFile , importRiskAnalysisFile , importUsabilityFile , importAssociationsFile , importProjectFile , importDomainValuesFile , importComponentViewFile , importSynopsesFile ,importProcessesFile ,importAssetsFile ,importLocationsFile ,importModelFile ,importMisusabilityFile ,importDataflowsFile ,importStoriesFile
127128
128129 normalised_import_file = os .path .abspath (importFile )
130+ b = Borg ()
131+ tmp_dir_abs = os .path .abspath (b .tmpDir )
132+ if (os .path .commonpath ([tmp_dir_abs , normalised_import_file ]) != tmp_dir_abs ):
133+ raise ARMException ('Invalid import file path: ' + importFile )
129134
130135 try :
131136 ET .fromstring (open (normalised_import_file ).read ())
@@ -134,43 +139,43 @@ def file_import(importFile,mFormat,overwriteFlag,session_id = None):
134139
135140 msgStr = ''
136141 if (mFormat == 'securitypattern' or mFormat == 'Security Pattern' ):
137- msgStr += importSecurityPatternsFile (importFile ,session_id )
142+ msgStr += importSecurityPatternsFile (normalised_import_file ,session_id )
138143 elif (mFormat == 'attackpattern' or mFormat == 'Attack Pattern' ):
139- msgStr += importAttackPattern (importFile ,session_id )
144+ msgStr += importAttackPattern (normalised_import_file ,session_id )
140145 elif (mFormat == 'tvtypes' or mFormat == 'Threat and Vulnerability Types' ):
141- msgStr += importTVTypeFile (importFile ,int (overwriteFlag ),session_id )
146+ msgStr += importTVTypeFile (normalised_import_file ,int (overwriteFlag ),session_id )
142147 elif (mFormat == 'directory' or mFormat == 'Threat and Vulnerability Directory' ):
143- msgStr += importDirectoryFile (importFile ,int (overwriteFlag ),session_id )
148+ msgStr += importDirectoryFile (normalised_import_file ,int (overwriteFlag ),session_id )
144149 elif (mFormat == 'requirements' or mFormat == 'Requirements' ):
145- msgStr += importRequirementsFile (importFile ,session_id )
150+ msgStr += importRequirementsFile (normalised_import_file ,session_id )
146151 elif (mFormat == 'riskanalysis' or mFormat == 'Risk Analysis' ):
147- msgStr += importRiskAnalysisFile (importFile ,session_id )
152+ msgStr += importRiskAnalysisFile (normalised_import_file ,session_id )
148153 elif (mFormat == 'usability' or mFormat == 'Usability' ):
149- msgStr += importUsabilityFile (importFile ,session_id )
154+ msgStr += importUsabilityFile (normalised_import_file ,session_id )
150155 elif (mFormat == 'misusability' or mFormat == 'Misusability' ):
151- msgStr += importMisusabilityFile (importFile ,session_id )
156+ msgStr += importMisusabilityFile (normalised_import_file ,session_id )
152157 elif (mFormat == 'associations' or mFormat == 'Associations' ):
153- msgStr += importAssociationsFile (importFile ,session_id )
158+ msgStr += importAssociationsFile (normalised_import_file ,session_id )
154159 elif (mFormat == 'project' or mFormat == 'Project data' ):
155- msgStr += importProjectFile (importFile ,session_id )
160+ msgStr += importProjectFile (normalised_import_file ,session_id )
156161 elif (mFormat == 'domainvalues' or mFormat == 'Domain Values' ):
157- msgStr += importDomainValuesFile (importFile ,session_id )
162+ msgStr += importDomainValuesFile (normalised_import_file ,session_id )
158163 elif (mFormat == 'architecturalpattern' or mFormat == 'Architectural Pattern' ):
159- msgStr += importComponentViewFile (importFile ,session_id )
164+ msgStr += importComponentViewFile (normalised_import_file ,session_id )
160165 elif (mFormat == 'synopses' or mFormat == 'Synopses' ):
161- msgStr += importSynopsesFile (importFile ,session_id )
166+ msgStr += importSynopsesFile (normalised_import_file ,session_id )
162167 elif (mFormat == 'processes' or mFormat == 'Processes' ):
163- msgStr += importProcessesFile (importFile ,session_id )
168+ msgStr += importProcessesFile (normalised_import_file ,session_id )
164169 elif (mFormat == 'assets' or mFormat == 'Assets' ):
165- msgStr += importAssetsFile (importFile ,session_id )
170+ msgStr += importAssetsFile (normalised_import_file ,session_id )
166171 elif (mFormat == 'locations' or mFormat == 'Locations' ):
167- msgStr += importLocationsFile (importFile ,session_id )
172+ msgStr += importLocationsFile (normalised_import_file ,session_id )
168173 elif (mFormat == 'dataflows' or mFormat == 'Dataflows' ):
169- msgStr += importDataflowsFile (importFile ,session_id )
174+ msgStr += importDataflowsFile (normalised_import_file ,session_id )
170175 elif (mFormat == 'stories' or mFormat == 'Stories' ):
171- msgStr += importStoriesFile (importFile ,session_id )
176+ msgStr += importStoriesFile (normalised_import_file ,session_id )
172177 elif (mFormat == 'all' or mFormat == 'Model' or mFormat == 'Model file (.xml)' ):
173- msgStr += importModelFile (importFile ,int (overwriteFlag ),session_id )
178+ msgStr += importModelFile (normalised_import_file ,int (overwriteFlag ),session_id )
174179 else :
175180 raise ARMException ('Input model type ' + mFormat + ' not recognised' )
176181 return 0
0 commit comments