|
@@ -2,7 +2,7 @@ import os
|
|
import unittest
|
|
import unittest
|
|
from __main__ import vtk, qt, ctk, slicer
|
|
from __main__ import vtk, qt, ctk, slicer
|
|
from slicer.ScriptedLoadableModule import *
|
|
from slicer.ScriptedLoadableModule import *
|
|
-
|
|
|
|
|
|
+import slicerNetwork
|
|
|
|
|
|
#
|
|
#
|
|
# labkeySlicerPythonExtension
|
|
# labkeySlicerPythonExtension
|
|
@@ -39,6 +39,7 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
|
|
ScriptedLoadableModuleWidget.setup(self)
|
|
ScriptedLoadableModuleWidget.setup(self)
|
|
# Instantiate and connect widgets ...
|
|
# Instantiate and connect widgets ...
|
|
self.logic=labkeySlicerPythonExtensionLogic(self)
|
|
self.logic=labkeySlicerPythonExtensionLogic(self)
|
|
|
|
+ self.network=slicerNetwork.slicerNetwork(self)
|
|
#
|
|
#
|
|
# Parameters Area
|
|
# Parameters Area
|
|
#
|
|
#
|
|
@@ -52,6 +53,7 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
|
|
|
|
|
|
connectionFormLayout.addRow("Server: ", self.serverURL)
|
|
connectionFormLayout.addRow("Server: ", self.serverURL)
|
|
|
|
|
|
|
|
+ self.startDir=os.environ['HOME']+"/temp/crt"
|
|
self.userCertButton=qt.QPushButton("Load")
|
|
self.userCertButton=qt.QPushButton("Load")
|
|
self.userCertButton.toolTip="Load user certificate (crt)"
|
|
self.userCertButton.toolTip="Load user certificate (crt)"
|
|
self.userCertButton.connect('clicked(bool)',self.onUserCertButtonClicked)
|
|
self.userCertButton.connect('clicked(bool)',self.onUserCertButtonClicked)
|
|
@@ -164,9 +166,8 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
|
|
#logic.run(self.inputSelector.currentNode(), self.outputSelector.currentNode(), enableScreenshotsFlag,screenshotScaleFactor)
|
|
#logic.run(self.inputSelector.currentNode(), self.outputSelector.currentNode(), enableScreenshotsFlag,screenshotScaleFactor)
|
|
|
|
|
|
def onUserCertButtonClicked(self):
|
|
def onUserCertButtonClicked(self):
|
|
- startDir=os.environ['HOME']+"/temp"
|
|
|
|
filename=qt.QFileDialog.getOpenFileName(None,'Open user certificate',
|
|
filename=qt.QFileDialog.getOpenFileName(None,'Open user certificate',
|
|
- startDir, '*.crt')
|
|
|
|
|
|
+ self.startDir, '*.crt')
|
|
#pwd=qt.QInputDialog.getText(None,'Certificate password',
|
|
#pwd=qt.QInputDialog.getText(None,'Certificate password',
|
|
# 'Enter certificate password',qt.QLineEdit.Password)
|
|
# 'Enter certificate password',qt.QLineEdit.Password)
|
|
if not(filename) :
|
|
if not(filename) :
|
|
@@ -188,9 +189,8 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
|
|
self.userCertButton.setText(filename)
|
|
self.userCertButton.setText(filename)
|
|
|
|
|
|
def onPrivateKeyButtonClicked(self):
|
|
def onPrivateKeyButtonClicked(self):
|
|
- startDir=os.environ['HOME']+"/temp"
|
|
|
|
filename=qt.QFileDialog.getOpenFileName(None,'Open private key',
|
|
filename=qt.QFileDialog.getOpenFileName(None,'Open private key',
|
|
- startDir, '*.key')
|
|
|
|
|
|
+ self.startDir, '*.key')
|
|
if not (filename) :
|
|
if not (filename) :
|
|
print "No file selected"
|
|
print "No file selected"
|
|
return
|
|
return
|
|
@@ -199,16 +199,16 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
|
|
if not (f.open(qt.QIODevice.ReadOnly)) :
|
|
if not (f.open(qt.QIODevice.ReadOnly)) :
|
|
print "Could not open file"
|
|
print "Could not open file"
|
|
return
|
|
return
|
|
- pwd=qt.QInputDialog.getText(None,'Private key password',
|
|
|
|
- 'Enter key password',qt.QLineEdit.Password)
|
|
|
|
|
|
+ self.pwd=qt.QInputDialog.getText(None,'Private key password',
|
|
|
|
+ 'Enter key password',qt.QLineEdit.Password)
|
|
|
|
|
|
- self.logic.key=qt.QSslKey(f,qt.QSsl.Rsa,qt.QSsl.Pem,qt.QSsl.PrivateKey,str(pwd))
|
|
|
|
|
|
+ self.logic.key=qt.QSslKey(f,qt.QSsl.Rsa,qt.QSsl.Pem,qt.QSsl.PrivateKey,
|
|
|
|
+ str(self.pwd))
|
|
self.privateKeyButton.setText(filename)
|
|
self.privateKeyButton.setText(filename)
|
|
|
|
|
|
def onCaCertButtonClicked(self):
|
|
def onCaCertButtonClicked(self):
|
|
- startDir=os.environ['HOME']+"/temp"
|
|
|
|
filename=qt.QFileDialog.getOpenFileName(None,'Open authority certificate',
|
|
filename=qt.QFileDialog.getOpenFileName(None,'Open authority certificate',
|
|
- startDir, '*.crt')
|
|
|
|
|
|
+ self.startDir, filter='*.crt')
|
|
if not(filename) :
|
|
if not(filename) :
|
|
print "No file selected"
|
|
print "No file selected"
|
|
return
|
|
return
|
|
@@ -228,6 +228,13 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
|
|
self.caCertButton.setText(filename)
|
|
self.caCertButton.setText(filename)
|
|
|
|
|
|
def onConnectButtonClicked(self):
|
|
def onConnectButtonClicked(self):
|
|
|
|
+ self.network.configureSSL(
|
|
|
|
+ self.userCertButton.text,
|
|
|
|
+ self.privateKeyButton.text,
|
|
|
|
+ self.pwd,
|
|
|
|
+ self.caCertButton.text
|
|
|
|
+ )
|
|
|
|
+
|
|
uname=str(self.logic.cert.subjectInfo("emailAddress"))
|
|
uname=str(self.logic.cert.subjectInfo("emailAddress"))
|
|
uname=qt.QInputDialog.getText(None,
|
|
uname=qt.QInputDialog.getText(None,
|
|
"Labkey credentials","Enter username",qt.QLineEdit.Normal,uname)
|
|
"Labkey credentials","Enter username",qt.QLineEdit.Normal,uname)
|
|
@@ -235,7 +242,7 @@ class labkeySlicerPythonExtensionWidget(ScriptedLoadableModuleWidget):
|
|
pwd=qt.QInputDialog.getText(None,
|
|
pwd=qt.QInputDialog.getText(None,
|
|
"Labkey credentials","Enter password",qt.QLineEdit.Password)
|
|
"Labkey credentials","Enter password",qt.QLineEdit.Password)
|
|
|
|
|
|
- self.logic.connectRemote(str(self.serverURL.text),uname,pwd)
|
|
|
|
|
|
+ self.network.connectRemote(str(self.serverURL.text),uname,pwd)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -257,36 +264,6 @@ class labkeySlicerPythonExtensionLogic(ScriptedLoadableModuleLogic):
|
|
ScriptedLoadableModuleLogic.__init__(self, parent)
|
|
ScriptedLoadableModuleLogic.__init__(self, parent)
|
|
self.qnam=qt.QNetworkAccessManager()
|
|
self.qnam=qt.QNetworkAccessManager()
|
|
|
|
|
|
- def connectRemote(self,serverURL,uname,pwd):
|
|
|
|
- request=qt.QNetworkRequest()
|
|
|
|
- request.setUrl(qt.QUrl(serverURL));
|
|
|
|
- request.setHeader(qt.QNetworkRequest.ContentTypeHeader,
|
|
|
|
- "application/x-www-form-urlencoded")
|
|
|
|
-
|
|
|
|
- data="email="+uname+"&password="+pwd;
|
|
|
|
-
|
|
|
|
- #setup the transfer
|
|
|
|
- sConfig=qt.QSslConfiguration()
|
|
|
|
-
|
|
|
|
- #user certificate
|
|
|
|
- sConfig.setLocalCertificate(self.cert)
|
|
|
|
- sConfig.setPrivateKey(self.key)
|
|
|
|
-
|
|
|
|
- #ca certificate
|
|
|
|
- caList=[self.caCert]
|
|
|
|
- sConfig.setCaCertificates(caList)
|
|
|
|
-
|
|
|
|
- request.setSslConfiguration(sConfig)
|
|
|
|
-
|
|
|
|
- #post
|
|
|
|
-
|
|
|
|
- r=self.qnam.post(request,data)
|
|
|
|
- connect(qnam, qt.QNetworkAccessManager.finished, self, replyFinished);
|
|
|
|
-
|
|
|
|
- def replyFinished(self,res):
|
|
|
|
- print "Reply finished"
|
|
|
|
-
|
|
|
|
-
|
|
|
|
def hasImageData(self,volumeNode):
|
|
def hasImageData(self,volumeNode):
|
|
"""This is a dummy logic method that
|
|
"""This is a dummy logic method that
|
|
returns true if the passed in volume
|
|
returns true if the passed in volume
|