def onRemovePattern(self,evt): countermeasure = self.theParentDialog.objts[self.theParentDialog.selectedLabel] cmId = countermeasure.id() try: b = Borg() dbProxy = b.dbProxy patterns = dbProxy.countermeasurePatterns(cmId) cDlg = DimensionNameDialog(self,'securitypattern',patterns,'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): patternName = cDlg.dimensionName() patternId = dbProxy.getDimensionId(patternName,'securitypattern') spDeps = dbProxy.reportDependencies('securitypattern',cmId) if (len(spDeps) > 0): dlg = DependentsDialog(self,spDeps,'securitypattern') retValue = dlg.ShowModal() dlg.Destroy() if (retValue != DEPENDENTS_BUTTONCONFIRM_ID): cDlg.Destroy() return else: dbProxy.deleteDependencies(spDeps) dbProxy.deleteSituatedPattern(cmId,patternName) cDlg.Destroy() except ARMException,errorText: dlg = wx.MessageDialog(self,str(errorText),'Generate countermeasure asset',wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return
def onAdd(self, evt): try: riskDict = self.dbProxy.getDimensionNames('risk') if (len(riskDict) == 0): dlg = wx.MessageDialog( self, 'Cannot mitigate for non-existing risks', 'Add response', wx.OK) dlg.ShowModal() dlg.Destroy() return responseTypes = ['Accept', 'Transfer', 'Mitigate'] from DimensionNameDialog import DimensionNameDialog rtDlg = DimensionNameDialog(self, 'response', responseTypes, 'Select', (300, 200)) if (rtDlg.ShowModal() == armid.DIMNAME_BUTTONACTION_ID): responseType = rtDlg.dimensionName() responsePanel = MitigateEnvironmentPanel if (responseType == 'Accept'): responsePanel = AcceptEnvironmentPanel elif (responseType == 'Transfer'): responsePanel = TransferEnvironmentPanel addParameters = ResponseDialogParameters( armid.RESPONSE_ID, 'Add response', ResponseDialog, armid.RESPONSE_BUTTONCOMMIT_ID, self.dbProxy.addResponse, True, responsePanel, responseType) self.addObject(addParameters) rtDlg.Destroy() except ARM.ARMException, errorText: dlg = wx.MessageDialog(self, str(errorText), 'Add response', wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return
def onSelectSituate(self, evt): countermeasure = self.theParentDialog.objts[ self.theParentDialog.selectedLabel] cmId = countermeasure.id() try: b = Borg() dbProxy = b.dbProxy patterns = dbProxy.getDimensionNames('securitypattern') cDlg = DimensionNameDialog(self, 'securitypattern', patterns, 'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): patternName = cDlg.dimensionName() patternId = dbProxy.getDimensionId(patternName, 'securitypattern') spDlg = SecurityPatternEnvironmentDialog( self, patternId, countermeasure.environments()) if (spDlg.ShowModal() == SPENVIRONMENT_BUTTONCOMMIT_ID): self.situatePattern(patternId, spDlg.assetEnvironments()) spDlg.Destroy() dbProxy.addTrace('countermeasure_securitypattern', cmId, patternId) cDlg.Destroy() except ARMException, errorText: dlg = wx.MessageDialog(self, str(errorText), 'Generate countermeasure asset', wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return
def onListAlphabet(self,evt): b = Borg() codes = b.dbProxy.getDimensionNames('code',False) cDlg = DimensionNameDialog(self,'code',codes,'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): codeName = cDlg.dimensionName() self.addCode(codeName) cDlg.Destroy()
def onReassociate(self, evt): b = Borg() p = b.dbProxy dimensions = p.getDimensionNames('asset') dlg = DimensionNameDialog(self, 'asset', dimensions, 'Select') if (dlg.ShowModal() == DIMNAME_BUTTONACTION_ID): selectedAsset = dlg.dimensionName() reqTable = self.GetTable() selectedReq = reqTable.om.reqs[self.GetGridCursorRow()] p.reassociateAsset(selectedAsset, self.envCombo.GetValue(), selectedReq.id()) self.modCombo.SetStringSelection(selectedAsset) dlg.Destroy() self.envCombo.SetValue('') self.setTable(self.modCombo, self.envCombo) self.thePanel.refresh()
def onAssociateSituated(self,evt): countermeasure = self.theParentDialog.objts[self.theParentDialog.selectedLabel] cmId = countermeasure.id() try: b = Borg() dbProxy = b.dbProxy patterns = dbProxy.candidateCountermeasurePatterns(cmId) cDlg = DimensionNameDialog(self,'securitypattern',patterns,'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): patternName = cDlg.dimensionName() dbProxy.associateCountermeasureToPattern(cmId,patternName) cDlg.Destroy() except ARMException,errorText: dlg = wx.MessageDialog(self,str(errorText),'Generate countermeasure asset',wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return
def onSelectGenerateFromTemplate(self,evt): countermeasure = self.theParentDialog.objts[self.theParentDialog.selectedLabel] cmId = countermeasure.id() try: b = Borg() dbProxy = b.dbProxy templateAssets = dbProxy.getDimensionNames('template_asset') cDlg = DimensionNameDialog(self,'template_asset',templateAssets,'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): templateAssetName = cDlg.dimensionName() assetId = dbProxy.addAsset(cairis.core.AssetParametersFactory.buildFromTemplate(templateAssetName,countermeasure.environments())) dbProxy.addTrace('countermeasure_asset',cmId,assetId) cDlg.Destroy() except ARMException,errorText: dlg = wx.MessageDialog(self,str(errorText),'Generate countermeasure asset',wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return
def onSituate(self,evt): cvObjt = self.theParentDialog.objts[self.theParentDialog.selectedLabel] cvName = cvObjt.name() try: environments = self.dbProxy.getDimensionNames('environment',False) cDlg = DimensionNameDialog(self,'environment',environments,'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): envName = cDlg.dimensionName() dlg = WeaknessAnalysisDialog(self,cvName,envName) if (dlg.ShowModal() == WEAKNESSANALYSIS_BUTTONCOMMIT_ID): self.situateComponentView(cvName,envName,dlg.targets(),dlg.goalObstacles()) dlg.Destroy() cDlg.Destroy() except ARMException,errorText: dlg = wx.MessageDialog(self,str(errorText),'Situate component view',wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return
def onSituate(self, evt): tAsset = self.theParentDialog.objts[self.theParentDialog.selectedLabel] taId = tAsset.id() taName = tAsset.name() try: b = Borg() dbProxy = b.dbProxy envs = dbProxy.getEnvironmentNames() cDlg = DimensionNameDialog(self, 'environment', envs, 'Select') if (cDlg.ShowModal() == armid.DIMNAME_BUTTONACTION_ID): sitEnvs = cDlg.dimensionNames() assetId = dbProxy.addAsset( AssetParametersFactory.buildFromTemplate(taName, sitEnvs)) # NB: we don't add anything to asset_template_asset, as we only use this table when the derived asset is part of a situated pattern cDlg.Destroy() except ARMException, errorText: dlg = wx.MessageDialog(self, str(errorText), 'Situate template asset', wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return