1
2
3
4 import wx
5
6
7
8
9
10
11
12
13 from CertUtils import CertificateRequest
14
17
18 kwds["style"] = wx.DEFAULT_DIALOG_STYLE
19 wx.Dialog.__init__(self, *args, **kwds)
20 self.label_1 = wx.StaticText(self, -1, "Certificate request text")
21 self.certRequestText = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_RICH)
22 self.emailFromLabel = wx.StaticText(self, -1, "From:")
23 self.emailFromText = wx.TextCtrl(self, -1, "")
24 self.caEmailLabel = wx.StaticText(self, -1, "CA/RA Email address (To):")
25 self.caEmailText = wx.TextCtrl(self, -1, "")
26 self.emailSubjectLabel = wx.StaticText(self, -1, "Subject:")
27 self.emailSubjectText = wx.TextCtrl(self, -1, "Certificate request", style=wx.TE_READONLY)
28 self.caNoteText = wx.TextCtrl(self, -1, "Please note that in some cases you should not send the certificate request to the specified CA email address instead to your registration RA. Please look at http://ca.nordugrid.org/ra.html for more information. If in doubt send it directly to the CA.", style=wx.TE_MULTILINE|wx.TE_READONLY)
29 self.copyToClipboardButton = wx.Button(self, -1, "Copy to clipboard")
30 self.sendRequestButton = wx.Button(self, -1, "Send")
31 self.closeButton = wx.Button(self, -1, "Close")
32
33 self.__set_properties()
34 self.__do_layout()
35
36 self.Bind(wx.EVT_BUTTON, self.onCopyToClipboard, self.copyToClipboardButton)
37 self.Bind(wx.EVT_BUTTON, self.onSendRequest, self.sendRequestButton)
38 self.Bind(wx.EVT_BUTTON, self.onClose, self.closeButton)
39
40
42
43 self.SetTitle("Send Certificate signing request")
44 self.SetSize((616, 438))
45 self.certRequestText.SetFont(wx.Font(10, wx.SCRIPT, wx.NORMAL, wx.NORMAL, 0, "Courier"))
46 self.emailFromLabel.SetMinSize((200, -1))
47 self.caEmailLabel.SetMinSize((200, -1))
48 self.emailSubjectLabel.SetMinSize((200, -1))
49 self.emailSubjectText.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DFACE))
50 self.caNoteText.SetBackgroundColour(wx.SystemSettings_GetColour(wx.SYS_COLOUR_INFOBK))
51
52
54
55 mainSizer = wx.BoxSizer(wx.VERTICAL)
56 buttonRowSizer = wx.BoxSizer(wx.HORIZONTAL)
57 emailSubjectSizer = wx.BoxSizer(wx.HORIZONTAL)
58 caEmailSizer = wx.BoxSizer(wx.HORIZONTAL)
59 emailFromSizer = wx.BoxSizer(wx.HORIZONTAL)
60 mainSizer.Add(self.label_1, 0, wx.LEFT|wx.RIGHT|wx.TOP, 4)
61 mainSizer.Add(self.certRequestText, 4, wx.ALL|wx.EXPAND, 4)
62 emailFromSizer.Add(self.emailFromLabel, 0, wx.LEFT|wx.ALIGN_CENTER_VERTICAL, 4)
63 emailFromSizer.Add(self.emailFromText, 1, wx.LEFT|wx.RIGHT|wx.TOP, 4)
64 mainSizer.Add(emailFromSizer, 0, wx.EXPAND, 0)
65 caEmailSizer.Add(self.caEmailLabel, 0, wx.LEFT|wx.ALIGN_CENTER_VERTICAL, 4)
66 caEmailSizer.Add(self.caEmailText, 1, wx.LEFT|wx.RIGHT|wx.TOP, 4)
67 mainSizer.Add(caEmailSizer, 0, wx.EXPAND, 0)
68 emailSubjectSizer.Add(self.emailSubjectLabel, 0, wx.LEFT|wx.ALIGN_CENTER_VERTICAL, 4)
69 emailSubjectSizer.Add(self.emailSubjectText, 1, wx.LEFT|wx.RIGHT|wx.TOP, 4)
70 mainSizer.Add(emailSubjectSizer, 0, wx.EXPAND, 0)
71 mainSizer.Add(self.caNoteText, 0, wx.ALL|wx.EXPAND, 4)
72 buttonRowSizer.Add(self.copyToClipboardButton, 0, wx.ADJUST_MINSIZE, 0)
73 buttonRowSizer.Add(self.sendRequestButton, 0, 0, 0)
74 buttonRowSizer.Add(self.closeButton, 0, 0, 0)
75 mainSizer.Add(buttonRowSizer, 0, wx.TOP|wx.BOTTOM|wx.ALIGN_CENTER_HORIZONTAL, 4)
76 self.SetSizer(mainSizer)
77 self.Layout()
78 self.Centre()
79
80
81 self.__initDialog()
82
84 """
85 Initiate dialog instance variables.
86 """
87 self.__certRequest = None
88
90 """
91 Update user interface controls.
92 """
93 requestFile = open(self.__certRequest.certRequestFilename, "r")
94 certRequestString = requestFile.read()
95 requestFile.close()
96 self.certRequestText.SetValue(certRequestString)
97 self.caEmailText.SetValue(self.__certRequest.CAEmail)
98 self.emailSubjectText.SetValue(self.__certRequest.emailSubject)
99 self.emailFromText.SetValue(self.__certRequest.email)
100
102 """
103 Assigne CertRequest instance.
104 """
105 self.__certRequest = request
106 self.__updateControls()
107
109 """
110 Return CertRequest instance.
111 """
112 return self.__certRequest
113
115 """
116 Send signing request.
117 """
118
119 self.__certRequest.emailSMTPServer = wx.GetTextFromUser("Enter outgoing mailserver", "Certificate request", self.__certRequest.emailSMTPServer)
120
121 if self.__certRequest.emailSMTPServer == "":
122 wx.MessageBox("Empty string for outgoing mail server given.", "Certificate request")
123 return
124
125 self.__certRequest.emailTo = self.caEmailText.GetValue()
126 self.__certRequest.emailFrom = self.emailFromText.GetValue()
127
128 errorMessage = self.__certRequest.sendSigningRequest()
129
130 if errorMessage == "":
131 wx.MessageBox("Certificate request sent")
132 self.Close()
133 else:
134 wx.MessageBox(errorMessage)
135
137 """
138 Close dialog.
139 """
140 self.Close()
141
143 """
144 Copy certificate request text to clipboard.
145 """
146 self.certRequestText.SetSelection(-1, -1)
147 self.certRequestText.Copy()
148 wx.MessageBox("Certificate request text has been copied to the clipboard.", "Certificate request")
149
150 certRequest = property(getCertRequest, setCertRequest)
151
152
153
154
155