def onInheritEnvironment(self,evt): from DimensionNameDialog import DimensionNameDialog dimensions = self.dbProxy.getEnvironmentNames() dlg = DimensionNameDialog(self,'environment',dimensions,'Inherit from ') if (dlg.ShowModal() == DIMNAME_BUTTONACTION_ID): self.theInheritedEnvironment = dlg.dimensionName() adddlg = DimensionNameDialog(self,'environment',dimensions,'Add') if (adddlg.ShowModal() == DIMNAME_BUTTONACTION_ID): idx = self.GetItemCount() self.InsertStringItem(idx,adddlg.dimensionName())
def onInheritEnvironment(self, evt): from DimensionNameDialog import DimensionNameDialog dimensions = self.dbProxy.getEnvironmentNames() dlg = DimensionNameDialog(self, 'environment', dimensions, 'Inherit from ') if (dlg.ShowModal() == DIMNAME_BUTTONACTION_ID): self.theInheritedEnvironment = dlg.dimensionName() adddlg = DimensionNameDialog(self, 'environment', dimensions, 'Add') if (adddlg.ShowModal() == DIMNAME_BUTTONACTION_ID): idx = self.GetItemCount() self.InsertStringItem(idx, adddlg.dimensionName())
def onTurnToGoal(self, evt): b = Borg() p = b.dbProxy environments = p.getDimensionNames('environment', False) cDlg = DimensionNameDialog(self, 'environment', environments, 'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): environmentName = cDlg.dimensionName() pos = self.GetGridCursorRow() table = self.GetTable() goalName = table.GetValue(pos, NAME_POS) goalDef = table.GetValue(pos, DESCRIPTION_POS) goalCat = 'Maintain' goalPri = table.GetValue(pos, PRIORITY_POS) goalFc = table.GetValue(pos, FITCRITERION_POS) goalIssue = table.GetValue(pos, RATIONALE_POS) goalOrig = table.GetValue(pos, ORIGINATOR_POS) goalAssets = [self.modCombo.GetValue()] dlg = ReqToGoalDialog(self, goalName, goalDef, goalCat, goalPri, goalFc, goalIssue, goalOrig, goalAssets, environmentName) if (dlg.ShowModal() == GOAL_BUTTONCOMMIT_ID): b = Borg() p = b.dbProxy p.addGoal(dlg.parameters()) self.DeleteRows(pos) dlg.Destroy()
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() == DIMNAME_BUTTONACTION_ID): responseType = rtDlg.dimensionName() responsePanel = MitigateEnvironmentPanel if (responseType == 'Accept'): responsePanel = AcceptEnvironmentPanel elif (responseType == 'Transfer'): responsePanel = TransferEnvironmentPanel addParameters = ResponseDialogParameters(RESPONSE_ID,'Add response',ResponseDialog,RESPONSE_BUTTONCOMMIT_ID,self.dbProxy.addResponse,True,responsePanel,responseType) self.addObject(addParameters) rtDlg.Destroy() except ARMException,errorText: dlg = wx.MessageDialog(self,str(errorText),'Add response',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 onAddDimension(self,evt): targetList = self.dbProxy.targetNames(self.theRiskList.GetItems()) from DimensionNameDialog import DimensionNameDialog dlg = DimensionNameDialog(self,'Target',targetList,'Add') if (dlg.ShowModal() == armid.DIMNAME_BUTTONACTION_ID): additionalDimension = dlg.dimensionName() self.Append(additionalDimension) self.theSelectedValue = additionalDimension
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 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 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() == armid.DIMNAME_BUTTONACTION_ID): envName = cDlg.dimensionName() dlg = WeaknessAnalysisDialog(self,cvName,envName) if (dlg.ShowModal() == armid.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 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 onSelectGenerate(self,evt): objt = self.theParentDialog.objts[self.theParentDialog.selectedLabel] # objtId = objt.id() try: b = Borg() dbProxy = b.dbProxy domains = dbProxy.getDimensionNames('domain',False) cDlg = DimensionNameDialog(self,'domain',domains,'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): domainName = cDlg.dimensionName() GoalRequirementFactory.build(objt,domainName,self.theParentDialog.theMainWindow) # Change domain in panel # Add requirement # add goalrequirement_goalassociation except ARMException,errorText: dlg = wx.MessageDialog(self,str(errorText),'Generate goal requirement',wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return
def onUseCaseContribution(self,evt): ucName = self.GetItemText(self.theSelectedIdx) ucs = self.dbProxy.getUseCaseContributions(ucName) ucKeys = ucs.keys() ucKeys.append('[New Contribution]') rsDlg = DimensionNameDialog(self,'usecase_contribution',ucKeys,'Select') if (rsDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): synName = rsDlg.dimensionName() rType = 'reference' if (synName != '[New Contribution]'): rc,rType = ucs[synName] else: rc = ReferenceContribution(ucName,'','','') dlg = UseCaseContributionDialog(self,rc,rType) if (dlg.ShowModal() == REFERENCECONTRIBUTION_BUTTONCOMMIT_ID): if (rc.meansEnd() == ''): self.dbProxy.addUseCaseContribution(dlg.parameters()) else: self.dbProxy.updateUseCaseContribution(dlg.parameters())
def onUseCaseContribution(self, evt): ucName = self.GetItemText(self.theSelectedIdx) ucs = self.dbProxy.getUseCaseContributions(ucName) ucKeys = ucs.keys() ucKeys.append("[New Contribution]") rsDlg = DimensionNameDialog(self, "usecase_contribution", ucKeys, "Select") if rsDlg.ShowModal() == DIMNAME_BUTTONACTION_ID: synName = rsDlg.dimensionName() rType = "reference" if synName != "[New Contribution]": rc, rType = ucs[synName] else: rc = ReferenceContribution(ucName, "", "", "") dlg = UseCaseContributionDialog(self, rc, rType) if dlg.ShowModal() == REFERENCECONTRIBUTION_BUTTONCOMMIT_ID: if rc.meansEnd() == "": self.dbProxy.addUseCaseContribution(dlg.parameters()) else: self.dbProxy.updateUseCaseContribution(dlg.parameters())
def onUseCaseContribution(self,evt): ucName = self.GetItemText(self.theSelectedIdx) ucs = self.dbProxy.getUseCaseContributions(ucName) ucKeys = ucs.keys() ucKeys.append('[New Contribution]') rsDlg = DimensionNameDialog(self,'usecase_contribution',ucKeys,'Select') if (rsDlg.ShowModal() == armid.DIMNAME_BUTTONACTION_ID): synName = rsDlg.dimensionName() rType = 'reference' if (synName != '[New Contribution]'): rc,rType = ucs[synName] else: rc = ReferenceContribution(ucName,'','','') dlg = UseCaseContributionDialog(self,rc,rType) if (dlg.ShowModal() == armid.REFERENCECONTRIBUTION_BUTTONCOMMIT_ID): if (rc.meansEnd() == ''): self.dbProxy.addUseCaseContribution(dlg.parameters()) else: self.dbProxy.updateUseCaseContribution(dlg.parameters())
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 onTurnToGoal(self,evt): b = Borg() p = b.dbProxy environments = p.getDimensionNames('environment',False) cDlg = DimensionNameDialog(self,'environment',environments,'Select') if (cDlg.ShowModal() == DIMNAME_BUTTONACTION_ID): environmentName = cDlg.dimensionName() pos = self.GetGridCursorRow() table = self.GetTable() goalName = table.GetValue(pos,NAME_POS) goalDef = table.GetValue(pos,DESCRIPTION_POS) goalCat = 'Maintain' goalPri = table.GetValue(pos,PRIORITY_POS) goalFc = table.GetValue(pos,FITCRITERION_POS) goalIssue = table.GetValue(pos,RATIONALE_POS) goalOrig = table.GetValue(pos,ORIGINATOR_POS) goalAssets = [self.modCombo.GetValue()] dlg = ReqToGoalDialog(self,goalName,goalDef,goalCat,goalPri,goalFc,goalIssue,goalOrig,goalAssets,environmentName) if (dlg.ShowModal() == GOAL_BUTTONCOMMIT_ID): b = Borg() p = b.dbProxy p.addGoal(dlg.parameters()) self.DeleteRows(pos) dlg.Destroy()
def onAdd(self,evt): dims = self.dbProxy.getDimensionNames(self.theDimensionName,False) dlg = DimensionNameDialog(self,self.theDimensionName,dims,'Select',(300,200)) if (dlg.ShowModal() == DIMNAME_BUTTONACTION_ID): self.dimList.Append(dlg.dimensionName())
def onAdd(self, evt): dims = self.dbProxy.getDimensionNames(self.theDimensionName, False) dlg = DimensionNameDialog(self, self.theDimensionName, dims, 'Select', (300, 200)) if (dlg.ShowModal() == armid.DIMNAME_BUTTONACTION_ID): self.dimList.Append(dlg.dimensionName())