diff --git a/console/gui/CertificateClass.py b/console/gui/CertificateClass.py index d9da956..718871b 100755 --- a/console/gui/CertificateClass.py +++ b/console/gui/CertificateClass.py @@ -34,62 +34,42 @@ class CertClass (QtGui.QWidget): # self.default_cert_path = self.default_cert_path.replace("~",homePath) self.sendlayout = QtGui.QGridLayout() - self.getlayout = QtGui.QGridLayout() + self.sendlayout.setColumnStretch(0,5) + self.sendlayout.setColumnStretch(1,5) + self.sendlayout.setColumnStretch(2,5) self.mainlayout = QtGui.QVBoxLayout() # gen ceth by host self.sendlayout.addWidget(LabelWordWrap(_('Host'), self), 1,0) self.send_host = QtGui.QLineEdit('localhost', self) - self.sendlayout.addWidget(self.send_host, 1, 1) + self.sendlayout.addWidget(self.send_host, 1, 1, 1, 2) self.sendlayout.addWidget(LabelWordWrap(_('Port'), self), 2,0) self.send_port = QtGui.QLineEdit('8888', self) self.send_port.setValidator(QtGui.QIntValidator(self)) - self.sendlayout.addWidget(self.send_port, 2, 1) + self.sendlayout.addWidget(self.send_port, 2, 1, 1, 2) Send_button = QtGui.QPushButton(_("Send"), self) Send_button.clicked.connect(self.send) - self.sendlayout.addWidget(Send_button, 3, 1) + self.sendlayout.addWidget(Send_button, 3, 0) - self.GroupBoxSend = QtGui.QGroupBox \ - (_('Send certificate signing request')) - self.GroupBoxSend.setLayout(self.sendlayout) - - # GroupBox get certificate - self.getlayout.addWidget(LabelWordWrap(_('Host'), self), 1,0) - self.get_host = QtGui.QLineEdit('localhost', self) - self.getlayout.addWidget(self.get_host, 1, 1) - - self.getlayout.addWidget(LabelWordWrap(_('Port'), self), 2,0) - - self.get_port = QtGui.QLineEdit('8888', self) - self.get_port.setValidator(QtGui.QIntValidator(self)) - self.getlayout.addWidget(self.get_port, 2, 1) - Get_button = QtGui.QPushButton(_("Get"), self) Get_button.clicked.connect(self.get) - self.getlayout.addWidget(Get_button, 3, 1) - - self.GroupBoxGet = QtGui.QGroupBox(_('Get certificate from server')) - self.GroupBoxGet.setLayout(self.getlayout) - - # group all in widget + self.sendlayout.addWidget(Get_button, 3, 1) + Quit_button = QtGui.QPushButton(_("Quit"), self) Quit_button.setShortcut(QtGui.QKeySequence(QtCore.Qt.Key_Return)) + Quit_button.clicked.connect(self.close) + self.sendlayout.addWidget(Quit_button, 3, 2) - - self.connect(Quit_button, QtCore.SIGNAL("clicked()"), - self, QtCore.SLOT("close()")) + self.GroupBoxSend = QtGui.QGroupBox \ + (_('Certificate signing request')) + self.GroupBoxSend.setLayout(self.sendlayout) self.resize(400,200) - self.mainlayout.addWidget(self.GroupBoxSend) - self.mainlayout.addWidget(self.GroupBoxGet) - - self.mainlayout.addWidget(Quit_button) - self.setLayout(self.mainlayout) self.setFocus() # for clear memory after closed this window @@ -117,24 +97,23 @@ class CertClass (QtGui.QWidget): if port == '' or not port.isdigit(): show_msg (_('Enter Port'), _('Field "Port" Error!')) return 1 - + # send request cert_path = self.default_cert_path - + if os.path.exists(cert_path + 'req_id'): text = _("You have sent a request to sign the certificate!") informative_text = _("request id = %s\n") \ %open(cert_path + 'req_id', 'r').read() \ + _("Send new request?") reply = show_question(self, text, informative_text) - + if reply == QtGui.QMessageBox.No: return 0 - + elif reply == QtGui.QMessageBox.Yes: pass - - + url = "https://%s:%d/?wsdl" %(by_host, int(port)) print 'URL = ', url from suds.client import Client @@ -214,19 +193,19 @@ class CertClass (QtGui.QWidget): req_id = fc.read() fc.close() - from_host = self.get_host.text() + from_host = self.send_host.text() if from_host == '': show_msg (_('Enter Hostname or IP adress'), \ _('Field "Host" Error!')) return 1 - port = self.get_port.text() + port = self.send_port.text() if port == '' or not port.isdigit(): show_msg (_('Enter Port'), _('Field "Port" Error!')) return 1 - + url = "https://%s:%s/?wsdl" %(from_host, port) - + from suds.client import Client try: client = Client(url, \ @@ -246,24 +225,24 @@ class CertClass (QtGui.QWidget): print 'method get in CertificateClass Exception' show_msg (e, _("Not connected!")) return 1 - + if not os.path.exists(cert_path + server_host_name + '.csr'): show_msg(_('Request %s not found on client side') \ %(cert_path + server_host_name + '.csr')) return 1 - + request = open(cert_path + server_host_name + '.csr').read() md5 = hashlib.md5() md5.update(request) md5sum = md5.hexdigest() - + try: result = client.service.get_client_cert(req_id, md5sum) except urllib2.URLError, e: print 'client.service.get_client_cert in CertificateClass Exception' show_msg (e, _("Not connected!")) return 1 - + cert = result[0][0] try: ca_root = result[0][1] @@ -288,33 +267,34 @@ class CertClass (QtGui.QWidget): fc.close() os.unlink(cert_path + 'req_id') show_msg (_('OK. Certificate save. Your certificate id = %s') %req_id) - + if ca_root: system_ca_db = self.ClientObj.VarsApi.Get('cl_glob_root_cert') if os.path.exists(system_ca_db): if ca_root in open(system_ca_db, 'r').read(): return 0 - - cl_client_cert_dir = self.ClientObj.VarsApi.Get('cl_client_cert_dir') + + cl_client_cert_dir = self.ClientObj.VarsApi.Get \ + ('cl_client_cert_dir') homePath = self.ClientObj.VarsApi.Get('ur_home_path') - + cl_client_cert_dir = cl_client_cert_dir.replace("~",homePath) if not os.path.isdir(cl_client_cert_dir): os.mkdir(cl_client_cert_dir) if not os.path.isdir(cl_client_cert_dir+'/ca'): os.mkdir(cl_client_cert_dir+'/ca') root_cert_md5 = cl_client_cert_dir + "/ca/cert_list" - + md5 = hashlib.md5() md5.update(ca_root) md5sum = md5.hexdigest() print "\n=================================================" print "md5sum = ", md5sum - + if not os.path.isfile(root_cert_md5): fc = open(root_cert_md5,"w") fc.close() - + filename = None with open(root_cert_md5) as fd: t = fd.read() @@ -331,15 +311,15 @@ class CertClass (QtGui.QWidget): for item in Issuer: if item[0] == 'CN': filename = item[1] - + fc = open(root_cert_md5,"a") fc.write('%s %s\n' %(md5sum, filename)) fc.close() - + if not filename: show_msg (_('Not found field "CN" in root certificate!')) return 1 - + fd = open(cl_client_cert_dir + '/ca/' + filename, 'w') fd.write(ca_root) fd.close()