예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
 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()
예제 #5
0
 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()
예제 #6
0
 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
예제 #7
0
 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
예제 #8
0
 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
예제 #9
0
 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