Example #1
0
 def buildControls(self, parameters):
     mainSizer = wx.BoxSizer(wx.VERTICAL)
     self.panel = RiskPanel(self)
     self.panel.buildControls(parameters.createFlag())
     mainSizer.Add(self.panel, 1, wx.EXPAND)
     self.SetSizer(mainSizer)
     wx.EVT_BUTTON(self, armid.RISK_BUTTONCOMMIT_ID, self.onCommit)
     wx.EVT_BUTTON(self, armid.RISK_BUTTONMISUSECASE_ID, self.onMisuseCase)
Example #2
0
 def buildControls(self,parameters):
   mainSizer = wx.BoxSizer(wx.VERTICAL)
   self.panel = RiskPanel(self)
   self.panel.buildControls(parameters.createFlag())
   mainSizer.Add(self.panel,1,wx.EXPAND)
   self.SetSizer(mainSizer)
   wx.EVT_BUTTON(self,RISK_BUTTONCOMMIT_ID,self.onCommit)
   wx.EVT_BUTTON(self,RISK_BUTTONMISUSECASE_ID,self.onMisuseCase)
Example #3
0
class RiskDialog(wx.Dialog):
  def __init__(self,parent,parameters):
    wx.Dialog.__init__(self,parent,parameters.id(),parameters.label(),style=wx.DEFAULT_DIALOG_STYLE|wx.MAXIMIZE_BOX|wx.THICK_FRAME|wx.RESIZE_BORDER,size=(400,450))

    self.theRiskId = -1
    self.theMisuseCase = None
    self.theThreatName = ''
    self.theVulnerabilityName = ''
    self.theTags = []
    self.panel = 0
    self.buildControls(parameters)
    self.commitVerb = 'Create'
 
  def buildControls(self,parameters):
    mainSizer = wx.BoxSizer(wx.VERTICAL)
    self.panel = RiskPanel(self)
    self.panel.buildControls(parameters.createFlag())
    mainSizer.Add(self.panel,1,wx.EXPAND)
    self.SetSizer(mainSizer)
    wx.EVT_BUTTON(self,RISK_BUTTONCOMMIT_ID,self.onCommit)
    wx.EVT_BUTTON(self,RISK_BUTTONMISUSECASE_ID,self.onMisuseCase)

  def load(self,risk):
    self.theRiskId = risk.id()
    self.theMisuseCase = risk.misuseCase()
    self.panel.loadControls(risk)
    self.commitVerb = 'Edit'
    if (self.theMisuseCase != None):
      mcButton = self.FindWindowById(RISK_BUTTONMISUSECASE_ID)
      mcButton.SetLabel('Edit Misuse Case')
    

  def onMisuseCase(self,evt):
    nameCtrl = self.FindWindowById(RISK_TEXTNAME_ID)
    threatCtrl = self.FindWindowById(RISK_COMBOTHREAT_ID)
    vulCtrl = self.FindWindowById(RISK_COMBOVULNERABILITY_ID)

    riskName = nameCtrl.GetValue() 
    if (self.commitVerb == 'Create'):
      b = Borg()
      try:
        b.dbProxy.nameCheck(riskName,'risk')
      except ARMException,errorText:
        dlg = wx.MessageDialog(self,str(errorText),'Add Misuse Case',wx.OK | wx.ICON_ERROR)
        dlg.ShowModal()
        dlg.Destroy()
        return

    threatName = threatCtrl.GetStringSelection()
    vulnerabilityName = vulCtrl.GetStringSelection()

    commitLabel = self.commitVerb + ' risk'
    if len(riskName) == 0:
      dlg = wx.MessageDialog(self,'No risk name entered',commitLabel,wx.OK) 
      dlg.ShowModal()
      dlg.Destroy()
      return
    if len(threatName) == 0:
      dlg = wx.MessageDialog(self,'No threat selected',commitLabel,wx.OK) 
      dlg.ShowModal()
      dlg.Destroy()
      return
    elif (len(vulnerabilityName) == 0):
      dlg = wx.MessageDialog(self,'No vulnerability selected',commitLabel,wx.OK) 
      dlg.ShowModal()
      dlg.Destroy()
      return

    isCreate = False
    if (self.theMisuseCase == None):
      isCreate = True
    dlg = MisuseCaseDialog(self,isCreate)
    if (self.theMisuseCase != None):
      self.theMisuseCase.theThreatName = threatName
      self.theMisuseCase.theVulnerabilityName = vulnerabilityName
      dlg.loadMisuseCase(self.theMisuseCase)
    else:
      dlg.loadRiskComponents(riskName,threatName,vulnerabilityName)
    if (dlg.ShowModal() == MISUSECASE_BUTTONCOMMIT_ID):
      if (self.theMisuseCase != None):
        self.theMisuseCase = cairis.core.ObjectFactory.build(self.theMisuseCase.id(),dlg.parameters())
      else:
        self.theMisuseCase = cairis.core.ObjectFactory.build(-1,dlg.parameters())
      mcButton = self.FindWindowById(RISK_BUTTONMISUSECASE_ID)
      mcButton.SetLabel('Edit Misuse Case')
Example #4
0
class RiskDialog(wx.Dialog):
    def __init__(self, parent, parameters):
        wx.Dialog.__init__(self,
                           parent,
                           parameters.id(),
                           parameters.label(),
                           style=wx.DEFAULT_DIALOG_STYLE | wx.MAXIMIZE_BOX
                           | wx.THICK_FRAME | wx.RESIZE_BORDER,
                           size=(400, 450))

        self.theRiskId = -1
        self.theMisuseCase = None
        self.theThreatName = ''
        self.theVulnerabilityName = ''
        self.theTags = []
        self.panel = 0
        self.buildControls(parameters)
        self.commitVerb = 'Create'

    def buildControls(self, parameters):
        mainSizer = wx.BoxSizer(wx.VERTICAL)
        self.panel = RiskPanel(self)
        self.panel.buildControls(parameters.createFlag())
        mainSizer.Add(self.panel, 1, wx.EXPAND)
        self.SetSizer(mainSizer)
        wx.EVT_BUTTON(self, armid.RISK_BUTTONCOMMIT_ID, self.onCommit)
        wx.EVT_BUTTON(self, armid.RISK_BUTTONMISUSECASE_ID, self.onMisuseCase)

    def load(self, risk):
        self.theRiskId = risk.id()
        self.theMisuseCase = risk.misuseCase()
        self.panel.loadControls(risk)
        self.commitVerb = 'Edit'
        if (self.theMisuseCase != None):
            mcButton = self.FindWindowById(armid.RISK_BUTTONMISUSECASE_ID)
            mcButton.SetLabel('Edit Misuse Case')

    def onMisuseCase(self, evt):
        nameCtrl = self.FindWindowById(armid.RISK_TEXTNAME_ID)
        threatCtrl = self.FindWindowById(armid.RISK_COMBOTHREAT_ID)
        vulCtrl = self.FindWindowById(armid.RISK_COMBOVULNERABILITY_ID)

        riskName = nameCtrl.GetValue()
        if (self.commitVerb == 'Create'):
            b = Borg()
            try:
                b.dbProxy.nameCheck(riskName, 'risk')
            except ARM.ARMException, errorText:
                dlg = wx.MessageDialog(self, str(errorText), 'Add Misuse Case',
                                       wx.OK | wx.ICON_ERROR)
                dlg.ShowModal()
                dlg.Destroy()
                return

        threatName = threatCtrl.GetStringSelection()
        vulnerabilityName = vulCtrl.GetStringSelection()

        commitLabel = self.commitVerb + ' risk'
        if len(riskName) == 0:
            dlg = wx.MessageDialog(self, 'No risk name entered', commitLabel,
                                   wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            return
        if len(threatName) == 0:
            dlg = wx.MessageDialog(self, 'No threat selected', commitLabel,
                                   wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            return
        elif (len(vulnerabilityName) == 0):
            dlg = wx.MessageDialog(self, 'No vulnerability selected',
                                   commitLabel, wx.OK)
            dlg.ShowModal()
            dlg.Destroy()
            return

        isCreate = False
        if (self.theMisuseCase == None):
            isCreate = True
        dlg = MisuseCaseDialog(self, isCreate)
        if (self.theMisuseCase != None):
            self.theMisuseCase.theThreatName = threatName
            self.theMisuseCase.theVulnerabilityName = vulnerabilityName
            dlg.loadMisuseCase(self.theMisuseCase)
        else:
            dlg.loadRiskComponents(riskName, threatName, vulnerabilityName)
        if (dlg.ShowModal() == armid.MISUSECASE_BUTTONCOMMIT_ID):
            if (self.theMisuseCase != None):
                self.theMisuseCase = ObjectFactory.build(
                    self.theMisuseCase.id(), dlg.parameters())
            else:
                self.theMisuseCase = ObjectFactory.build(-1, dlg.parameters())
            mcButton = self.FindWindowById(armid.RISK_BUTTONMISUSECASE_ID)
            mcButton.SetLabel('Edit Misuse Case')