You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(26) |
Oct
(81) |
Nov
(59) |
Dec
(35) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(85) |
Feb
(52) |
Mar
(24) |
Apr
(34) |
May
(12) |
Jun
|
Jul
(12) |
Aug
(18) |
Sep
(1) |
Oct
(51) |
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
(37) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(5) |
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(8) |
Jul
(23) |
Aug
(8) |
Sep
|
Oct
(4) |
Nov
|
Dec
(1) |
2008 |
Jan
|
Feb
(17) |
Mar
(52) |
Apr
|
May
|
Jun
(14) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
(1) |
Dec
(1) |
From: <ve...@us...> - 2008-02-27 22:58:11
|
Revision: 766 http://luma.svn.sourceforge.net/luma/?rev=766&view=rev Author: vegarwe Date: 2008-02-27 14:58:09 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Add a popup dialog using the certificate dialog for prompting whetere or not to continue on unverified cert Added Paths: ----------- trunk/luma/lib/luma/base/gui/UnknownCertDialog.py trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.py trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.ui Added: trunk/luma/lib/luma/base/gui/UnknownCertDialog.py =================================================================== --- trunk/luma/lib/luma/base/gui/UnknownCertDialog.py (rev 0) +++ trunk/luma/lib/luma/base/gui/UnknownCertDialog.py 2008-02-27 22:58:09 UTC (rev 766) @@ -0,0 +1,77 @@ +import sys +from qt import * + +from base.gui.UnknownCertDialogDesign import UnknownCertDialogDesign +from base.gui.CertificateDialogDesign import CertificateDialogDesign + +# SSL +from base.backend.LumaSSLConnection import * + +class UnknownCertDialog(UnknownCertDialogDesign): + + def __init__(self, serverMeta,parent = None,name = None,fl = 0): + UnknownCertDialogDesign.__init__(self,parent,name,fl) + + self.serverMeta = serverMeta + self.cert = None + + self.fetchCertificate() + self.showCert() + +############################################################################### + + def fetchCertificate(self): + # Return is no server is selected + if self.serverMeta == None: + return + + # Connect to server + try: + conn = LumaSSLConnection(self.serverMeta) + bindSuccess, exceptionObject = conn.connect() + if bindSuccess: + self.cert = conn.getCertDetails() + conn.close() + except LumaSSLConnectionException, e: + exceptionObject = e + bindSuccess = 0 + + # Error handling + # Silently ignore errors? + #if not bindSuccess: + # a = QMessageBox.critical(self, "Unable to connect to server", + # "An error occured when connecting to %s. (%s)" + # % (self.SERVERMETA.name, str(exceptionObject)), "Ok") + # a.exec_loop() + # return + +############################################################################### + + def showCert(self): + if self.cert == None: + return + + certificateFrameLayout = QHBoxLayout(self.certificateFrame,11,6,"certificateFrameLayout") + self.certificateDialog = CertificateDialogDesign(self.certificateFrame) + certificateFrameLayout.addWidget(self.certificateDialog) + + # To + self.certificateDialog.cnToLabel.setText( self.cert["cnTo"] ) + self.certificateDialog.oToLabel.setText( self.cert["oTo"] ) + self.certificateDialog.ouToLabel.setText( self.cert["ouTo"] ) + self.certificateDialog.serialToLabel.setText( self.cert["serial"] ) + + # By + self.certificateDialog.cnByLabel.setText( self.cert["cnBy"] ) + self.certificateDialog.oByLabel.setText( self.cert["oBy"] ) + self.certificateDialog.ouByLabel.setText( self.cert["ouBy"] ) + + # Validity + if (self.cert["valid"]): + self.certificateDialog.issuedOnLabel.setText("Yes") + else: + self.certificateDialog.issuedOnLabel.setText("No") + + # Fingerprints + self.certificateDialog.sha1Label.setText( self.cert["sha1"] ) + self.certificateDialog.md5Label.setText( self.cert["md5"] ) Added: trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.py =================================================================== --- trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.py (rev 0) +++ trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.py 2008-02-27 22:58:09 UTC (rev 766) @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'lib/luma/base/gui/UnknownCertDialogDesign.ui' +# +# Created: Sat Feb 23 23:59:24 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.17.4 +# +# WARNING! All changes made in this file will be lost! + + +import sys +from qt import * + + +class UnknownCertDialogDesign(QDialog): + def __init__(self,parent = None,name = None,modal = 0,fl = 0): + QDialog.__init__(self,parent,name,modal,fl) + + if not name: + self.setName("UnknownCertDialogDesign") + + + UnknownCertDialogDesignLayout = QGridLayout(self,1,1,11,6,"UnknownCertDialogDesignLayout") + + layout10 = QHBoxLayout(None,0,6,"layout10") + spacer20 = QSpacerItem(189,21,QSizePolicy.Expanding,QSizePolicy.Minimum) + layout10.addItem(spacer20) + + self.textLabel2 = QLabel(self,"textLabel2") + layout10.addWidget(self.textLabel2) + + self.okButton = QPushButton(self,"okButton") + layout10.addWidget(self.okButton) + + self.cancelButton = QPushButton(self,"cancelButton") + layout10.addWidget(self.cancelButton) + + UnknownCertDialogDesignLayout.addLayout(layout10,2,0) + + self.certificateFrame = QFrame(self,"certificateFrame") + self.certificateFrame.setFrameShape(QFrame.StyledPanel) + self.certificateFrame.setFrameShadow(QFrame.Raised) + + UnknownCertDialogDesignLayout.addWidget(self.certificateFrame,1,0) + + self.textLabel1 = QLabel(self,"textLabel1") + self.textLabel1.setMaximumSize(QSize(32767,21)) + + UnknownCertDialogDesignLayout.addWidget(self.textLabel1,0,0) + + self.languageChange() + + self.resize(QSize(522,404).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + self.connect(self.okButton,SIGNAL("clicked()"),self.accept) + self.connect(self.cancelButton,SIGNAL("clicked()"),self.reject) + + + def languageChange(self): + self.setCaption(self.__tr("Certificate error")) + self.textLabel2.setText(self.__tr("Continue anyway?")) + self.okButton.setText(self.__tr("&Yes")) + self.okButton.setAccel(QKeySequence(self.__tr("Alt+Y"))) + self.cancelButton.setText(self.__tr("&No")) + self.cancelButton.setAccel(QKeySequence(self.__tr("Alt+N"))) + self.textLabel1.setText(self.__tr("The server certificate can not be verified")) + + + def __tr(self,s,c = None): + return qApp.translate("UnknownCertDialogDesign",s,c) + +if __name__ == "__main__": + a = QApplication(sys.argv) + QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()")) + w = UnknownCertDialogDesign() + a.setMainWidget(w) + w.show() + a.exec_loop() Added: trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.ui =================================================================== --- trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.ui (rev 0) +++ trunk/luma/lib/luma/base/gui/UnknownCertDialogDesign.ui 2008-02-27 22:58:09 UTC (rev 766) @@ -0,0 +1,121 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>UnknownCertDialogDesign</class> +<widget class="QDialog"> + <property name="name"> + <cstring>UnknownCertDialogDesign</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>522</width> + <height>404</height> + </rect> + </property> + <property name="caption"> + <string>Certificate error</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLayoutWidget" row="2" column="0"> + <property name="name"> + <cstring>layout10</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <spacer> + <property name="name"> + <cstring>spacer20</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>189</width> + <height>21</height> + </size> + </property> + </spacer> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel2</cstring> + </property> + <property name="text"> + <string>Continue anyway?</string> + </property> + </widget> + <widget class="QPushButton"> + <property name="name"> + <cstring>okButton</cstring> + </property> + <property name="text"> + <string>&Yes</string> + </property> + <property name="accel"> + <string>Alt+Y</string> + </property> + </widget> + <widget class="QPushButton"> + <property name="name"> + <cstring>cancelButton</cstring> + </property> + <property name="text"> + <string>&No</string> + </property> + <property name="accel"> + <string>Alt+N</string> + </property> + </widget> + </hbox> + </widget> + <widget class="QFrame" row="1" column="0"> + <property name="name"> + <cstring>certificateFrame</cstring> + </property> + <property name="frameShape"> + <enum>StyledPanel</enum> + </property> + <property name="frameShadow"> + <enum>Raised</enum> + </property> + </widget> + <widget class="QLabel" row="0" column="0"> + <property name="name"> + <cstring>textLabel1</cstring> + </property> + <property name="maximumSize"> + <size> + <width>32767</width> + <height>21</height> + </size> + </property> + <property name="text"> + <string>The server certificate can not be verified</string> + </property> + </widget> + </grid> +</widget> +<connections> + <connection> + <sender>okButton</sender> + <signal>clicked()</signal> + <receiver>UnknownCertDialogDesign</receiver> + <slot>accept()</slot> + </connection> + <connection> + <sender>cancelButton</sender> + <signal>clicked()</signal> + <receiver>UnknownCertDialogDesign</receiver> + <slot>reject()</slot> + </connection> +</connections> +<layoutdefaults spacing="6" margin="11"/> +</UI> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2008-02-27 22:56:58
|
Revision: 765 http://luma.svn.sourceforge.net/luma/?rev=765&view=rev Author: vegarwe Date: 2008-02-27 14:56:57 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Add a dialog for viewing a certificate Added Paths: ----------- trunk/luma/lib/luma/base/gui/CertificateDialogDesign.py trunk/luma/lib/luma/base/gui/CertificateDialogDesign.ui Added: trunk/luma/lib/luma/base/gui/CertificateDialogDesign.py =================================================================== --- trunk/luma/lib/luma/base/gui/CertificateDialogDesign.py (rev 0) +++ trunk/luma/lib/luma/base/gui/CertificateDialogDesign.py 2008-02-27 22:56:57 UTC (rev 765) @@ -0,0 +1,236 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'lib/luma/base/gui/CertificateDialogDesign.ui' +# +# Created: Sun Feb 24 15:00:32 2008 +# by: The PyQt User Interface Compiler (pyuic) 3.17.4 +# +# WARNING! All changes made in this file will be lost! + + +import sys +from qt import * + + +class CertificateDialogDesign(QWidget): + def __init__(self,parent = None,name = None,fl = 0): + QWidget.__init__(self,parent,name,fl) + + if not name: + self.setName("CertificateDialogDesign") + + + CertificateDialogDesignLayout = QGridLayout(self,1,1,11,6,"CertificateDialogDesignLayout") + + layout70 = QGridLayout(None,1,1,0,6,"layout70") + + layout47 = QGridLayout(None,1,1,0,6,"layout47") + spacer28 = QSpacerItem(16,20,QSizePolicy.Fixed,QSizePolicy.Minimum) + layout47.addItem(spacer28,0,0) + + layout46 = QHBoxLayout(None,0,6,"layout46") + + self.textLabel23 = QLabel(self,"textLabel23") + layout46.addWidget(self.textLabel23) + + self.issuedOnLabel = QLabel(self,"issuedOnLabel") + layout46.addWidget(self.issuedOnLabel) + + layout47.addLayout(layout46,0,1) + + layout70.addLayout(layout47,5,0) + spacer50 = QSpacerItem(160,260,QSizePolicy.Fixed,QSizePolicy.Minimum) + layout70.addMultiCell(spacer50,1,6,1,1) + + layout23 = QHBoxLayout(None,0,6,"layout23") + + self.textLabel1_5 = QLabel(self,"textLabel1_5") + layout23.addWidget(self.textLabel1_5) + spacer40 = QSpacerItem(80,16,QSizePolicy.Minimum,QSizePolicy.Fixed) + layout23.addItem(spacer40) + + layout70.addLayout(layout23,0,0) + + layout44 = QGridLayout(None,1,1,0,6,"layout44") + + layout29 = QHBoxLayout(None,0,6,"layout29") + + self.textLabel20 = QLabel(self,"textLabel20") + layout29.addWidget(self.textLabel20) + + self.cnByLabel = QLabel(self,"cnByLabel") + layout29.addWidget(self.cnByLabel) + + layout44.addLayout(layout29,0,1) + + layout30 = QHBoxLayout(None,0,6,"layout30") + + self.textLabel21 = QLabel(self,"textLabel21") + layout30.addWidget(self.textLabel21) + + self.oByLabel = QLabel(self,"oByLabel") + layout30.addWidget(self.oByLabel) + + layout44.addLayout(layout30,1,1) + spacer22_2 = QSpacerItem(16,50,QSizePolicy.Fixed,QSizePolicy.Minimum) + layout44.addMultiCell(spacer22_2,0,2,0,0) + + layout31 = QHBoxLayout(None,0,6,"layout31") + + self.textLabel22 = QLabel(self,"textLabel22") + layout31.addWidget(self.textLabel22) + + self.ouByLabel = QLabel(self,"ouByLabel") + layout31.addWidget(self.ouByLabel) + + layout44.addLayout(layout31,2,1) + + layout70.addLayout(layout44,3,0) + + layout39 = QGridLayout(None,1,1,0,6,"layout39") + spacer22 = QSpacerItem(16,70,QSizePolicy.Fixed,QSizePolicy.Minimum) + layout39.addMultiCell(spacer22,0,3,0,0) + + layout25 = QHBoxLayout(None,0,6,"layout25") + + self.textLabel17 = QLabel(self,"textLabel17") + layout25.addWidget(self.textLabel17) + + self.oToLabel = QLabel(self,"oToLabel") + layout25.addWidget(self.oToLabel) + + layout39.addLayout(layout25,1,1) + + layout24 = QHBoxLayout(None,0,6,"layout24") + + self.textLabel16 = QLabel(self,"textLabel16") + self.textLabel16.setFrameShape(QLabel.NoFrame) + self.textLabel16.setFrameShadow(QLabel.Plain) + layout24.addWidget(self.textLabel16) + + self.cnToLabel = QLabel(self,"cnToLabel") + layout24.addWidget(self.cnToLabel) + + layout39.addLayout(layout24,0,1) + + layout26 = QHBoxLayout(None,0,6,"layout26") + + self.textLabel18 = QLabel(self,"textLabel18") + layout26.addWidget(self.textLabel18) + + self.ouToLabel = QLabel(self,"ouToLabel") + layout26.addWidget(self.ouToLabel) + + layout39.addLayout(layout26,2,1) + + layout27 = QHBoxLayout(None,0,6,"layout27") + + self.textLabel19 = QLabel(self,"textLabel19") + layout27.addWidget(self.textLabel19) + + self.serialToLabel = QLabel(self,"serialToLabel") + layout27.addWidget(self.serialToLabel) + + layout39.addLayout(layout27,3,1) + + layout70.addLayout(layout39,1,0) + + layout32 = QHBoxLayout(None,0,6,"layout32") + + self.textLabel10 = QLabel(self,"textLabel10") + layout32.addWidget(self.textLabel10) + spacer36_3 = QSpacerItem(100,16,QSizePolicy.Minimum,QSizePolicy.Expanding) + layout32.addItem(spacer36_3) + + layout70.addLayout(layout32,4,0) + + layout28 = QHBoxLayout(None,0,6,"layout28") + + self.textLabel5_3 = QLabel(self,"textLabel5_3") + layout28.addWidget(self.textLabel5_3) + spacer36_2 = QSpacerItem(100,16,QSizePolicy.Minimum,QSizePolicy.Expanding) + layout28.addItem(spacer36_2) + + layout70.addLayout(layout28,2,0) + + layout34 = QHBoxLayout(None,0,6,"layout34") + + self.textLabel13 = QLabel(self,"textLabel13") + layout34.addWidget(self.textLabel13) + spacer36 = QSpacerItem(100,16,QSizePolicy.Minimum,QSizePolicy.Expanding) + layout34.addItem(spacer36) + + layout70.addLayout(layout34,6,0) + + CertificateDialogDesignLayout.addLayout(layout70,0,0) + + layout42 = QGridLayout(None,1,1,0,6,"layout42") + spacer22_2_2 = QSpacerItem(16,30,QSizePolicy.Fixed,QSizePolicy.Minimum) + layout42.addMultiCell(spacer22_2_2,0,1,0,0) + + layout36 = QHBoxLayout(None,0,6,"layout36") + + self.textLabel26 = QLabel(self,"textLabel26") + layout36.addWidget(self.textLabel26) + + self.md5Label = QLabel(self,"md5Label") + layout36.addWidget(self.md5Label) + + layout42.addLayout(layout36,1,1) + + layout35 = QHBoxLayout(None,0,6,"layout35") + + self.textLabel25 = QLabel(self,"textLabel25") + layout35.addWidget(self.textLabel25) + + self.sha1Label = QLabel(self,"sha1Label") + layout35.addWidget(self.sha1Label) + + layout42.addLayout(layout35,0,1) + + CertificateDialogDesignLayout.addLayout(layout42,1,0) + + self.languageChange() + + self.resize(QSize(566,365).expandedTo(self.minimumSizeHint())) + self.clearWState(Qt.WState_Polished) + + + def languageChange(self): + self.setCaption(self.__tr("CertificateDialogDesign")) + self.textLabel23.setText(self.__tr("Has expired")) + self.issuedOnLabel.setText(QString.null) + self.textLabel1_5.setText(self.__tr("Issued To")) + self.textLabel20.setText(self.__tr("Common Name (cn)")) + self.cnByLabel.setText(QString.null) + self.textLabel21.setText(self.__tr("Organization (o)")) + self.oByLabel.setText(QString.null) + self.textLabel22.setText(self.__tr("Organizational Unit (ou)")) + self.ouByLabel.setText(QString.null) + self.textLabel17.setText(self.__tr("Organization (o)")) + self.oToLabel.setText(QString.null) + self.textLabel16.setText(self.__tr("Common Name (cn)")) + self.cnToLabel.setText(QString.null) + self.textLabel18.setText(self.__tr("Organizational Unit (ou)")) + self.ouToLabel.setText(QString.null) + self.textLabel19.setText(self.__tr("Serial Number")) + self.serialToLabel.setText(QString.null) + self.textLabel10.setText(self.__tr("Validity")) + self.textLabel5_3.setText(self.__tr("Issued By")) + self.textLabel13.setText(self.__tr("Fingerprints")) + self.textLabel26.setText(self.__tr("MD5 Fingerprint")) + self.md5Label.setText(QString.null) + self.textLabel25.setText(self.__tr("SHA1 Fingerprint")) + self.sha1Label.setText(QString.null) + + + def __tr(self,s,c = None): + return qApp.translate("CertificateDialogDesign",s,c) + +if __name__ == "__main__": + a = QApplication(sys.argv) + QObject.connect(a,SIGNAL("lastWindowClosed()"),a,SLOT("quit()")) + w = CertificateDialogDesign() + a.setMainWidget(w) + w.show() + a.exec_loop() Added: trunk/luma/lib/luma/base/gui/CertificateDialogDesign.ui =================================================================== --- trunk/luma/lib/luma/base/gui/CertificateDialogDesign.ui (rev 0) +++ trunk/luma/lib/luma/base/gui/CertificateDialogDesign.ui 2008-02-27 22:56:57 UTC (rev 765) @@ -0,0 +1,566 @@ +<!DOCTYPE UI><UI version="3.3" stdsetdef="1"> +<class>CertificateDialogDesign</class> +<widget class="QWidget"> + <property name="name"> + <cstring>CertificateDialogDesign</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>566</width> + <height>365</height> + </rect> + </property> + <property name="caption"> + <string>CertificateDialogDesign</string> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLayoutWidget" row="0" column="0"> + <property name="name"> + <cstring>layout70</cstring> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLayoutWidget" row="5" column="0"> + <property name="name"> + <cstring>layout47</cstring> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <spacer row="0" column="0"> + <property name="name"> + <cstring>spacer28</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Fixed</enum> + </property> + <property name="sizeHint"> + <size> + <width>16</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QLayoutWidget" row="0" column="1"> + <property name="name"> + <cstring>layout46</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel23</cstring> + </property> + <property name="text"> + <string>Has expired</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>issuedOnLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + </grid> + </widget> + <spacer row="1" column="1" rowspan="6" colspan="1"> + <property name="name"> + <cstring>spacer50</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Fixed</enum> + </property> + <property name="sizeHint"> + <size> + <width>160</width> + <height>260</height> + </size> + </property> + </spacer> + <widget class="QLayoutWidget" row="0" column="0"> + <property name="name"> + <cstring>layout23</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1_5</cstring> + </property> + <property name="text"> + <string>Issued To</string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer40</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Fixed</enum> + </property> + <property name="sizeHint"> + <size> + <width>80</width> + <height>16</height> + </size> + </property> + </spacer> + </hbox> + </widget> + <widget class="QLayoutWidget" row="3" column="0"> + <property name="name"> + <cstring>layout44</cstring> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLayoutWidget" row="0" column="1"> + <property name="name"> + <cstring>layout29</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel20</cstring> + </property> + <property name="text"> + <string>Common Name (cn)</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>cnByLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="1" column="1"> + <property name="name"> + <cstring>layout30</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel21</cstring> + </property> + <property name="text"> + <string>Organization (o)</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>oByLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + <spacer row="0" column="0" rowspan="3" colspan="1"> + <property name="name"> + <cstring>spacer22_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Fixed</enum> + </property> + <property name="sizeHint"> + <size> + <width>16</width> + <height>50</height> + </size> + </property> + </spacer> + <widget class="QLayoutWidget" row="2" column="1"> + <property name="name"> + <cstring>layout31</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel22</cstring> + </property> + <property name="text"> + <string>Organizational Unit (ou)</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>ouByLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + </grid> + </widget> + <widget class="QLayoutWidget" row="1" column="0"> + <property name="name"> + <cstring>layout39</cstring> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <spacer row="0" column="0" rowspan="4" colspan="1"> + <property name="name"> + <cstring>spacer22</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Fixed</enum> + </property> + <property name="sizeHint"> + <size> + <width>16</width> + <height>70</height> + </size> + </property> + </spacer> + <widget class="QLayoutWidget" row="1" column="1"> + <property name="name"> + <cstring>layout25</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel17</cstring> + </property> + <property name="text"> + <string>Organization (o)</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>oToLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="0" column="1"> + <property name="name"> + <cstring>layout24</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel16</cstring> + </property> + <property name="frameShape"> + <enum>NoFrame</enum> + </property> + <property name="frameShadow"> + <enum>Plain</enum> + </property> + <property name="text"> + <string>Common Name (cn)</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>cnToLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="2" column="1"> + <property name="name"> + <cstring>layout26</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel18</cstring> + </property> + <property name="text"> + <string>Organizational Unit (ou)</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>ouToLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="3" column="1"> + <property name="name"> + <cstring>layout27</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel19</cstring> + </property> + <property name="text"> + <string>Serial Number</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>serialToLabel</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + </grid> + </widget> + <widget class="QLayoutWidget" row="4" column="0"> + <property name="name"> + <cstring>layout32</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel10</cstring> + </property> + <property name="text"> + <string>Validity</string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer36_3</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>100</width> + <height>16</height> + </size> + </property> + </spacer> + </hbox> + </widget> + <widget class="QLayoutWidget" row="2" column="0"> + <property name="name"> + <cstring>layout28</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel5_3</cstring> + </property> + <property name="text"> + <string>Issued By</string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer36_2</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>100</width> + <height>16</height> + </size> + </property> + </spacer> + </hbox> + </widget> + <widget class="QLayoutWidget" row="6" column="0"> + <property name="name"> + <cstring>layout34</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel13</cstring> + </property> + <property name="text"> + <string>Fingerprints</string> + </property> + </widget> + <spacer> + <property name="name"> + <cstring>spacer36</cstring> + </property> + <property name="orientation"> + <enum>Vertical</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>100</width> + <height>16</height> + </size> + </property> + </spacer> + </hbox> + </widget> + </grid> + </widget> + <widget class="QLayoutWidget" row="1" column="0"> + <property name="name"> + <cstring>layout42</cstring> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <spacer row="0" column="0" rowspan="2" colspan="1"> + <property name="name"> + <cstring>spacer22_2_2</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Fixed</enum> + </property> + <property name="sizeHint"> + <size> + <width>16</width> + <height>30</height> + </size> + </property> + </spacer> + <widget class="QLayoutWidget" row="1" column="1"> + <property name="name"> + <cstring>layout36</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel26</cstring> + </property> + <property name="text"> + <string>MD5 Fingerprint</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>md5Label</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="0" column="1"> + <property name="name"> + <cstring>layout35</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel25</cstring> + </property> + <property name="text"> + <string>SHA1 Fingerprint</string> + </property> + </widget> + <widget class="QLabel"> + <property name="name"> + <cstring>sha1Label</cstring> + </property> + <property name="text"> + <string></string> + </property> + </widget> + </hbox> + </widget> + </grid> + </widget> + </grid> +</widget> +<layoutdefaults spacing="6" margin="11"/> +</UI> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2008-02-27 22:21:30
|
Revision: 764 http://luma.svn.sourceforge.net/luma/?rev=764&view=rev Author: vegarwe Date: 2008-02-27 14:21:08 -0800 (Wed, 27 Feb 2008) Log Message: ----------- * Refactor how prompt for password are handled. * Introdue helperfunctions for readability. * Prompt to continue on unverified certifiate (notice how this is no possible after bugfix in python-openldap) Modified Paths: -------------- trunk/luma/lib/luma/base/backend/LumaConnection.py Modified: trunk/luma/lib/luma/base/backend/LumaConnection.py =================================================================== --- trunk/luma/lib/luma/base/backend/LumaConnection.py 2008-02-27 22:15:19 UTC (rev 763) +++ trunk/luma/lib/luma/base/backend/LumaConnection.py 2008-02-27 22:21:08 UTC (rev 764) @@ -27,6 +27,7 @@ from base.backend.SmartDataObject import SmartDataObject from base.utils.backend.LogObject import LogObject from base.utils.gui.PromptPasswordDialog import PromptPasswordDialog +from qt import QMessageBox class LumaConnectionException(Exception): """This exception class will be raised if no proper server object is passed @@ -48,6 +49,7 @@ # For storing prompted passwords _passwordMap = {} + _certMap = {} def __init__(self, serverMeta=None): # Throw exception if no ServerObject is passed. @@ -239,27 +241,35 @@ def bind(self): """Bind to server. """ - environment.setBusy(True) workerThread = self.__bind() - # Prompt for password on INVALID_CREDENTIALS or UNWILLING_TO_PERFORM - # UNWILLING_TO_PERFORM on bind usaually means trying to bind with blank password - if isinstance(workerThread.exceptionObject, ldap.INVALID_CREDENTIALS) or \ - isinstance(workerThread.exceptionObject, ldap.UNWILLING_TO_PERFORM): - if LumaConnection._passwordMap.has_key(self.serverMeta.name): - self.serverMeta.bindPassword = LumaConnection._passwordMap[self.serverMeta.name] + # Prompt user to continue if we suspect that the certificate could not + # be verified + if self._cert_error(workerThread): + dialog = QMessageBox("Certificate error", + "Do you want to continue anyway?", + QMessageBox.Question, + QMessageBox.Yes, + QMessageBox.No, + QMessageBox.NoButton, + None) + + environment.setBusy(False) + dialog.exec_loop() + if dialog.result() == 3 + self.serverMeta.checkServerCertificate = u"never" + LumaConnection._certMap[self.serverMeta.name] = u"never" workerThread = self.__bind() - else: - environment.setBusy(False) - dialog = PromptPasswordDialog() - dialog.exec_loop() - if dialog.result() == 1: - environment.setBusy(False) - self.serverMeta.bindPassword = unicode(dialog.passwordEdit.text()) - LumaConnection._passwordMap[self.serverMeta.name] = self.serverMeta.bindPassword - workerThread = self.__bind() - environment.setBusy(False) + # Prompt for password on _invalid_pwd or _blank_pwd + if self._invalid_pwd(workerThread) or self._blank_pwd(workerThread): + dialog = PromptPasswordDialog() + environment.setBusy(False) + dialog.exec_loop() + if dialog.result() == 1: + self.serverMeta.bindPassword = unicode(dialog.passwordEdit.text()) + LumaConnection._passwordMap[self.serverMeta.name] = self.serverMeta.bindPassword + workerThread = self.__bind() if workerThread.exceptionObject == None: message = "LDAP bind operation successful." @@ -271,12 +281,16 @@ message += str(workerThread.exceptionObject) environment.logMessage(LogObject("Error", message)) # If credentials are still wrong after prompting, remove from passwordmap - if isinstance(workerThread.exceptionObject, ldap.INVALID_CREDENTIALS): - if LumaConnection._passwordMap.has_key(self.serverMeta.name): - LumaConnection._passwordMap.pop(self.serverMeta.name) + if self._override_pwd(self.serverMeta) and self._invalid_pwd(workerThread): + LumaConnection._passwordMap.pop(self.serverMeta.name) return (False, workerThread.exceptionObject) def __bind(self): + if self._override_pwd(self.serverMeta): + self.serverMeta.bindPassword = LumaConnection._passwordMap[self.serverMeta.name] + if self._ignore_cert(self.serverMeta): + self.serverMeta.checkServerCertificate = u"never" + workerThread = WorkerThreadBind(self.serverMeta) workerThread.start() @@ -285,6 +299,28 @@ time.sleep(0.05) return workerThread + # Internal helper functions with semi self explaining names + def _ignore_cert(self, serverMeta): + return LumaConnection._certMap.has_key(serverMeta.name) + def _override_pwd(self, serverMeta): + return LumaConnection._passwordMap.has_key(serverMeta.name) + def _cert_error(self, workerThread): + # With SSL enabled, we get a SERVER_DOWN on wrong certificate + # With TLS enabled, we get a CONNECT_ERROR on wrong certificate + # Notice however that server error can be raised on other issues as well + cert_error = False + if workerThread.serverMeta.encryptionMethod == 'SSL': + cert_error = isinstance(workerThread.exceptionObject, ldap.SERVER_DOWN) + if workerThread.serverMeta.encryptionMethod == "TLS": + cert_error = isinstance(workerThread.exceptionObject, ldap.CONNECT_ERROR) + return cert_error + def _invalid_pwd(self, workerThread): + return isinstance(workerThread.exceptionObject, ldap.INVALID_CREDENTIALS) + def _blank_pwd(self, workerThread): + # UNWILLING_TO_PERFORM on bind usaually means trying to bind with blank password + return workerThread.serverMeta.bindPassword == "" and \ + isinstance(workerThread.exceptionObject, ldap.UNWILLING_TO_PERFORM) + ############################################################################### def unbind(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2008-02-27 22:15:29
|
Revision: 763 http://luma.svn.sourceforge.net/luma/?rev=763&view=rev Author: vegarwe Date: 2008-02-27 14:15:19 -0800 (Wed, 27 Feb 2008) Log Message: ----------- URL initialize has to be done AFTER ldap.set_option (obviously...) Modified Paths: -------------- trunk/luma/lib/luma/base/backend/LumaConnection.py Modified: trunk/luma/lib/luma/base/backend/LumaConnection.py =================================================================== --- trunk/luma/lib/luma/base/backend/LumaConnection.py 2008-02-27 20:14:18 UTC (rev 762) +++ trunk/luma/lib/luma/base/backend/LumaConnection.py 2008-02-27 22:15:19 UTC (rev 763) @@ -500,24 +500,6 @@ def run(self): try: - urlschemeVal = "ldap" - if self.serverMeta.encryptionMethod == "SSL": - urlschemeVal = "ldaps" - - whoVal = None - credVal = None - if not (self.serverMeta.bindAnon): - whoVal = self.serverMeta.bindDN - credVal = self.serverMeta.bindPassword - - url = ldapurl.LDAPUrl(urlscheme=urlschemeVal, - hostport = self.serverMeta.host + ":" + str(self.serverMeta.port), - dn = self.serverMeta.baseDN, who = whoVal, - cred = credVal) - - self.ldapServerObject = ldap.initialize(url.initializeUrl()) - self.ldapServerObject.protocol_version = 3 - # Check whether we want to validate the server certificate. validateMethod = ldap.OPT_X_TLS_DEMAND if self.serverMeta.checkServerCertificate == u"demand": @@ -537,8 +519,24 @@ if encryption: ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, validateMethod) - #self.ldapServerObject.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, validateMethod) + + urlschemeVal = "ldap" + if self.serverMeta.encryptionMethod == "SSL": + urlschemeVal = "ldaps" + + whoVal = None + credVal = None + if not (self.serverMeta.bindAnon): + whoVal = self.serverMeta.bindDN + credVal = self.serverMeta.bindPassword + + url = ldapurl.LDAPUrl(urlscheme=urlschemeVal, + hostport = self.serverMeta.host + ":" + str(self.serverMeta.port), + dn = self.serverMeta.baseDN, who = whoVal, + cred = credVal) + self.ldapServerObject = ldap.initialize(url.initializeUrl()) + self.ldapServerObject.protocol_version = 3 # If we're going to present client certificates, this must be set as an option if self.serverMeta.useCertificate and encryption: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2008-02-27 20:14:21
|
Revision: 762 http://luma.svn.sourceforge.net/luma/?rev=762&view=rev Author: bgrotan Date: 2008-02-27 12:14:18 -0800 (Wed, 27 Feb 2008) Log Message: ----------- New release. Changes: * No longer need to store bind-password in config-file. * Password will be prompted if left blank and a binddn is set * Added support for searchfilter in Browserplugin * Added support for sizelimit in Browserplugin * Fixed bug: problem saving binary attributes * Fixed bug: Server settings dialog only supports ports up to 32767 Added Paths: ----------- tags/luma-2.4/ Copied: tags/luma-2.4 (from rev 761, trunk/luma) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2008-02-27 20:09:59
|
Revision: 761 http://luma.svn.sourceforge.net/luma/?rev=761&view=rev Author: vegarwe Date: 2008-02-27 12:09:41 -0800 (Wed, 27 Feb 2008) Log Message: ----------- When removing either sizelimit or filter, check whetere the other is active and do not remove icon if it is Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py Modified: trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-27 20:06:51 UTC (rev 760) +++ trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-27 20:09:41 UTC (rev 761) @@ -970,7 +970,10 @@ if result[0] == "": self.popupItem.filter = None - self.popupItem.setPixmap(0, QPixmap()) + if self.popupItem.limit > 0: + self.popupItem.setPixmap(0, self.filterIcon) + else: + self.popupItem.setPixmap(0, QPixmap()) else: self.popupItem.filter = unicode(result[0]) self.popupItem.setPixmap(0, self.filterIcon) @@ -993,7 +996,10 @@ self.popupItem.limit = result[0] if result[0] == 0: - self.popupItem.setPixmap(0, QPixmap()) + if self.popupItem.filter: + self.popupItem.setPixmap(0, self.filterIcon) + else: + self.popupItem.setPixmap(0, QPixmap()) else: self.popupItem.setPixmap(0, self.filterIcon) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2008-02-27 20:06:55
|
Revision: 760 http://luma.svn.sourceforge.net/luma/?rev=760&view=rev Author: bgrotan Date: 2008-02-27 12:06:51 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Switch from CVS to Subversion Modified Paths: -------------- trunk/luma/make-distribution-ifi Modified: trunk/luma/make-distribution-ifi =================================================================== --- trunk/luma/make-distribution-ifi 2008-02-27 20:06:01 UTC (rev 759) +++ trunk/luma/make-distribution-ifi 2008-02-27 20:06:51 UTC (rev 760) @@ -16,7 +16,7 @@ cp COPYING tmp/luma-$1 cd tmp -find . -name "CVS" | xargs rm -rf +find . -name ".svn" | xargs rm -rf find . -name "*.pyc" | xargs rm find . -name "*~" | xargs rm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2008-02-27 20:06:13
|
Revision: 759 http://luma.svn.sourceforge.net/luma/?rev=759&view=rev Author: bgrotan Date: 2008-02-27 12:06:01 -0800 (Wed, 27 Feb 2008) Log Message: ----------- Remove traces of CVS and cleanup svn. Modified Paths: -------------- trunk/luma/make-distribution Modified: trunk/luma/make-distribution =================================================================== --- trunk/luma/make-distribution 2008-02-23 00:23:22 UTC (rev 758) +++ trunk/luma/make-distribution 2008-02-27 20:06:01 UTC (rev 759) @@ -11,13 +11,13 @@ cp -R bin tmp/luma-$1 cp -R lib tmp/luma-$1 cp -R share tmp/luma-$1 -cp install.py tmp/luma-$1 -cp README tmp/luma-$1 -cp COPYING tmp/luma-$1 -cp LICENSE tmp/luma-$1 +cp install.py tmp/luma-$1 +cp README tmp/luma-$1 +cp COPYING tmp/luma-$1 +cp LICENSE tmp/luma-$1 cd tmp -find . -name "CVS" | xargs rm -rf +find . -name ".svn" | xargs rm -rf find . -name "*.pyc" | xargs rm find . -name "*~" | xargs rm find . -name ".*" | xargs rm @@ -32,8 +32,11 @@ rm -rf luma-$1/share/luma/icons/plugins/config_create rm -rf luma-$1/lib/luma/plugins/schemaeditor +rm -rf luma-$1/patches -tar -cvjvpf luma-$1.tar.bz2 luma-$1 +tar -cjvpf luma-$1.tar.bz2 luma-$1 +tar -czvpf luma-$1.tar.gz luma-$1 mv luma-$1*.bz2 .. +mv luma-$1*.gz .. cd .. rm -rf tmp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2008-02-23 00:23:25
|
Revision: 758 http://luma.svn.sourceforge.net/luma/?rev=758&view=rev Author: vegarwe Date: 2008-02-22 16:23:22 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Add support for setting sizelimit as well Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py Modified: trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-22 22:12:04 UTC (rev 757) +++ trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-23 00:23:22 UTC (rev 758) @@ -168,7 +168,8 @@ oldAliasValue = self.aliasDict[serverName] self.aliasDict[serverName] = False - success, resultList, exceptionObject = self.getLdapItemChildren(serverName, dn, 0, ['dn', 'objectClass'], filter=item.filter) + success, resultList, exceptionObject = self.getLdapItemChildren(\ + serverName, dn, 0, ['dn', 'objectClass'], filter=item.filter, limit=item.limit) if success: if len(resultList) == 0: @@ -271,7 +272,7 @@ ############################################################################### - def getLdapItemChildren(self, serverName, dn, allLevel, noAttributes=None, filter=None): + def getLdapItemChildren(self, serverName, dn, allLevel, noAttributes=None, filter=None, limit=0): """ Return a list of children a ldap object has. allLevel == 1: @@ -303,7 +304,7 @@ searchLevel = ldap.SCOPE_ONELEVEL - success, resultList, exceptionObject = conObject.search(dn, searchLevel, filter, noAttributes, 0) + success, resultList, exceptionObject = conObject.search(dn, searchLevel, filter, noAttributes, sizelimit=limit) conObject.unbind() @@ -618,12 +619,14 @@ listIterator += 1 popupMenu.insertItem(self.trUtf8("Edit server settings"), self.editServerSettings) - popupMenu.insertItem(self.trUtf8("Set searchfilter"), self.setItemFilter) menuID = popupMenu.insertItem(QIconSet(self.aliasIcon), self.trUtf8("Follow Aliases"), self.enableAliases) popupMenu.setItemChecked(menuID, self.aliasDict[server]) if not (tmpItem.parent() == None): + popupMenu.insertItem(self.trUtf8("Set search filter"), self.setItemFilter) + popupMenu.insertItem(self.trUtf8("Set search limit"), self.setItemLimit) + # different menus for right click exportMenu = QPopupMenu() self.addItemMenu = QPopupMenu() @@ -979,6 +982,28 @@ ############################################################################### + def setItemLimit(self): + result = QInputDialog.getInteger(\ + self.trUtf8("Item search limit"), + self.trUtf8("Enter search limit:"), + self.popupItem.limit, 0) + + if result[1] == False: + return + + self.popupItem.limit = result[0] + if result[0] == 0: + self.popupItem.setPixmap(0, QPixmap()) + else: + self.popupItem.setPixmap(0, self.filterIcon) + + if self.popupItem.isOpen(): + self.itemCollapsed(self.popupItem) + self.itemExpanded(self.popupItem) + self.popupItem.setOpen(1) + +############################################################################### + def reopenDN(self, serverString, dnString): """ Reopens the listitem for the given dnString. @@ -1032,6 +1057,7 @@ self.ldapType = False self.filter = None + self.limit = 0 # DN of the entry if it is not a server item self.dn = None This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2008-02-22 22:12:10
|
Revision: 757 http://luma.svn.sourceforge.net/luma/?rev=757&view=rev Author: vegarwe Date: 2008-02-22 14:12:04 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Add an icon when search filter is applied Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py Added Paths: ----------- trunk/luma/share/luma/icons/filter.png Modified: trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-13 14:02:49 UTC (rev 756) +++ trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-22 22:12:04 UTC (rev 757) @@ -57,6 +57,7 @@ self.iconPath = os.path.join(tmpDirObject, "share", "luma", "icons") self.secureIcon = QPixmap(os.path.join(self.iconPath, "secure.png")) self.aliasIcon = QPixmap(os.path.join(self.iconPath, "alias.png")) + self.filterIcon = QPixmap(os.path.join(self.iconPath, "filter.png")) self.secureAliasIcon = QPixmap(os.path.join(self.iconPath, "secure-alias.png")) tmpObject = ServerList() @@ -595,7 +596,6 @@ self.popupItem = tmpItem tmpDirObject = environment.lumaInstallationPrefix - aliasIconFile = os.path.join(tmpDirObject, "share", "luma", "icons", "alias.png") popupMenu = QPopupMenu() server = tmpItem.getServerName() @@ -620,7 +620,7 @@ popupMenu.insertItem(self.trUtf8("Edit server settings"), self.editServerSettings) popupMenu.insertItem(self.trUtf8("Set searchfilter"), self.setItemFilter) - menuID = popupMenu.insertItem(QIconSet(QPixmap(aliasIconFile)), self.trUtf8("Follow Aliases"), self.enableAliases) + menuID = popupMenu.insertItem(QIconSet(self.aliasIcon), self.trUtf8("Follow Aliases"), self.enableAliases) popupMenu.setItemChecked(menuID, self.aliasDict[server]) if not (tmpItem.parent() == None): @@ -953,18 +953,24 @@ ############################################################################### def setItemFilter(self): + oldFilter = "" + if self.popupItem.filter: + oldFilter = self.popupItem.filter + result = QInputDialog.getText(\ self.trUtf8("Item searchfilter"), self.trUtf8("Please enter a searchfilter for the given item:"), - QLineEdit.Normal) + QLineEdit.Normal, oldFilter) if result[1] == False: return if result[0] == "": self.popupItem.filter = None + self.popupItem.setPixmap(0, QPixmap()) else: self.popupItem.filter = unicode(result[0]) + self.popupItem.setPixmap(0, self.filterIcon) if self.popupItem.isOpen(): self.itemCollapsed(self.popupItem) Added: trunk/luma/share/luma/icons/filter.png =================================================================== (Binary files differ) Property changes on: trunk/luma/share/luma/icons/filter.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2008-02-13 14:02:56
|
Revision: 756 http://luma.svn.sourceforge.net/luma/?rev=756&view=rev Author: vegarwe Date: 2008-02-13 06:02:49 -0800 (Wed, 13 Feb 2008) Log Message: ----------- Remove unnecessary debug output Modified Paths: -------------- trunk/luma/lib/luma/base/backend/LumaConnection.py Modified: trunk/luma/lib/luma/base/backend/LumaConnection.py =================================================================== --- trunk/luma/lib/luma/base/backend/LumaConnection.py 2008-02-13 13:07:55 UTC (rev 755) +++ trunk/luma/lib/luma/base/backend/LumaConnection.py 2008-02-13 14:02:49 UTC (rev 756) @@ -402,9 +402,7 @@ def run(self): try: - print "sellf.sizelimit %s" % self.sizelimit resultId = self.ldapServerObject.search_ext(self.base, self.scope, self.filter, self.attrList, self.attrsonly, sizelimit=self.sizelimit) - while 1: # search with a 60 second timeout This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2008-02-13 13:08:02
|
Revision: 755 http://luma.svn.sourceforge.net/luma/?rev=755&view=rev Author: bgrotan Date: 2008-02-13 05:07:55 -0800 (Wed, 13 Feb 2008) Log Message: ----------- Applying patch [1] for fixing problems with saving binary attributes [2]. [1] http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/luma/current/SOURCES/luma-2.4pre2-savedialog.patch?view=markup [2] http://sourceforge.net/tracker/index.php?func=detail&aid=1822821&group_id=89105&atid=589029 Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py trunk/luma/lib/luma/base/utils/gui/ExportDialog.py trunk/luma/lib/luma/base/utils/gui/editors/BinaryEditor.py Modified: trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py 2008-02-13 13:00:35 UTC (rev 754) +++ trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py 2008-02-13 13:07:55 UTC (rev 755) @@ -454,8 +454,8 @@ value = self.ldapDataObject.getAttributeValue(attributeName, index) fileName = unicode(QFileDialog.getSaveFileName(\ - None, - None, + QString.null, + "All files (*)", self, None, self.trUtf8("Export binary attribute to file"), None, 1)) Modified: trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-13 13:00:35 UTC (rev 754) +++ trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2008-02-13 13:07:55 UTC (rev 755) @@ -531,6 +531,7 @@ def deleteItem(self): """ Delete selected item from the server. """ + # TBD: Refresh so the deleted item no longer shows in the Browser-plugin selectedItems = [] listIterator = QListViewItemIterator(self) Modified: trunk/luma/lib/luma/base/utils/gui/ExportDialog.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/ExportDialog.py 2008-02-13 13:00:35 UTC (rev 754) +++ trunk/luma/lib/luma/base/utils/gui/ExportDialog.py 2008-02-13 13:07:55 UTC (rev 755) @@ -71,8 +71,8 @@ def showFileDialog(self): tmpFileName = QFileDialog.getSaveFileName(\ - None, - None, + QString.null, + "LDIF Files (*.ldif);; DSML Files (*.dsml);; All files (*)", None, None, self.trUtf8("Select file for exporting"), None, 1) Modified: trunk/luma/lib/luma/base/utils/gui/editors/BinaryEditor.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/editors/BinaryEditor.py 2008-02-13 13:00:35 UTC (rev 754) +++ trunk/luma/lib/luma/base/utils/gui/editors/BinaryEditor.py 2008-02-13 13:07:55 UTC (rev 755) @@ -63,8 +63,8 @@ def showFileDialog(self): tmpFileName = QFileDialog.getOpenFileName(\ - None, - None, + QString.null, + "All files (*)", self, None, self.trUtf8("Select file to change binary value"), None, 1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2008-02-13 13:00:40
|
Revision: 754 http://luma.svn.sourceforge.net/luma/?rev=754&view=rev Author: bgrotan Date: 2008-02-13 05:00:35 -0800 (Wed, 13 Feb 2008) Log Message: ----------- Fixed typo Modified Paths: -------------- trunk/luma/lib/luma/base/gui/ImprovedServerDialog.py trunk/luma/lib/luma/base/gui/ServerDialog.py Modified: trunk/luma/lib/luma/base/gui/ImprovedServerDialog.py =================================================================== --- trunk/luma/lib/luma/base/gui/ImprovedServerDialog.py 2007-12-01 21:43:59 UTC (rev 753) +++ trunk/luma/lib/luma/base/gui/ImprovedServerDialog.py 2008-02-13 13:00:35 UTC (rev 754) @@ -855,7 +855,7 @@ return selectedServerString = self.currentServer.name tmpDialog = QMessageBox(self.trUtf8("Delete Server?"), - self.trUtf8("Do your really want to delete server <b>%1</b>?").arg(selectedServerString), + self.trUtf8("Do you really want to delete server <b>%1</b>?").arg(selectedServerString), QMessageBox.Critical, QMessageBox.Ok, QMessageBox.Cancel, Modified: trunk/luma/lib/luma/base/gui/ServerDialog.py =================================================================== --- trunk/luma/lib/luma/base/gui/ServerDialog.py 2007-12-01 21:43:59 UTC (rev 753) +++ trunk/luma/lib/luma/base/gui/ServerDialog.py 2008-02-13 13:00:35 UTC (rev 754) @@ -247,7 +247,7 @@ selectedServerString = self.serverListView.currentItem().text(0) tmpDialog = QMessageBox(self.trUtf8("Delete Server?"), - self.trUtf8("Do your really want to delete the Server?"), + self.trUtf8("Do you really want to delete the Server?"), QMessageBox.Critical, QMessageBox.Ok, QMessageBox.Cancel, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2007-12-01 21:44:02
|
Revision: 753 http://luma.svn.sourceforge.net/luma/?rev=753&view=rev Author: bgrotan Date: 2007-12-01 13:43:59 -0800 (Sat, 01 Dec 2007) Log Message: ----------- Make shure less users get the same uidNumber in the UserManagement-plugin (wizard) Modified Paths: -------------- trunk/luma/lib/luma/plugins/usermanagement/AccountWizard.py Modified: trunk/luma/lib/luma/plugins/usermanagement/AccountWizard.py =================================================================== --- trunk/luma/lib/luma/plugins/usermanagement/AccountWizard.py 2007-10-16 21:56:22 UTC (rev 752) +++ trunk/luma/lib/luma/plugins/usermanagement/AccountWizard.py 2007-12-01 21:43:59 UTC (rev 753) @@ -229,7 +229,25 @@ elif result ==1: dataObject = SmartDataObject(('', {'objectClass': self.getPossibleClasses()}), self.serverMeta) - dataObject.addAttributeValue('uidNumber', ['1024']) + self.accountWidget.dataObject = dataObject + # Might be best to always fetch the current list of usedUserIDs. + # Methods of how to handle/generate new unused uidNumbers: + # 1: WebService + # 2: LDAP-object to store a sequence-like object. + # 3: The code below.. really ugly - but it works + if not hasattr(self.accountWidget,'usedUserIDs'): + userIDs = self.accountWidget.retrieveUserIDs() + self.accountWidget.usedUserIDs = userIDs + usedUserIDs = self.accountWidget.usedUserIDs + usedUserIDs.sort() + if len(usedUserIDs) == 0: + nextfreeuid = '1024' + else: + tmp = usedUserIDs[len(usedUserIDs)-1] + 1 + nextfreeuid = str(tmp) + self.accountWidget.usedUserIDs.append(nextfreeuid) # for performance-reasons + #dataObject.addAttributeValue('uidNumber', ['1024']) + dataObject.addAttributeValue('uidNumber',[nextfreeuid]) dataObject.addAttributeValue('homeDirectory', ['/home']) dataObject.addAttributeValue('loginShell', ['/bin/bash']) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2007-10-16 21:56:25
|
Revision: 752 http://luma.svn.sourceforge.net/luma/?rev=752&view=rev Author: bgrotan Date: 2007-10-16 14:56:22 -0700 (Tue, 16 Oct 2007) Log Message: ----------- Quickfix for handling leading or trailing wildcards in searchfilters Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/LumaEntryBrowser.py Modified: trunk/luma/lib/luma/base/utils/gui/LumaEntryBrowser.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/LumaEntryBrowser.py 2007-10-11 18:41:51 UTC (rev 751) +++ trunk/luma/lib/luma/base/utils/gui/LumaEntryBrowser.py 2007-10-16 21:56:22 UTC (rev 752) @@ -25,6 +25,7 @@ class LumaEntryBrowser (LumaEntryBrowserDesign): + # FIXME: make the searchfilter configurable and possibly per server/base searchFilter = "(&(objectClass=inetOrgPerson)(|(cn=*)(sn=*)(givenName=*)(mail=*) ) )" searchFilterPrefix = "(&(objectClass=inetOrgPerson)(|" searchFilterSuffix = "))" @@ -178,7 +179,13 @@ if (unicode(filter) == '') or (filter == None): filter = "*" else: - filter = "*" + unicode(filter) + "*" + # If * is the first or last character.. do not add it + if not(unicode(filter).startswith("*")): + filter = "*" + unicode(filter) + if not(unicode(filter).endswith("*")): + filter = unicode(filter) + "*" + # FIXME: should be replaced by gui-elements such as + # 'Starts with', 'Ends with' and 'contains' tmpString = "" for x in self.filterElements: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2007-10-11 18:41:55
|
Revision: 751 http://luma.svn.sourceforge.net/luma/?rev=751&view=rev Author: bgrotan Date: 2007-10-11 11:41:51 -0700 (Thu, 11 Oct 2007) Log Message: ----------- Fix RFC2252-compliancy for viewing and storing postal address. Fix postal-address focus Modified Paths: -------------- trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py Modified: trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py =================================================================== --- trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py 2007-10-11 17:52:38 UTC (rev 750) +++ trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py 2007-10-11 18:41:51 UTC (rev 751) @@ -205,7 +205,7 @@ self.birthDateEdit.setDate(QDate(int(tmpList[0]), int(tmpList[1]), int(tmpList[2]))) self.addressID = 0 - self.addressBox.setCurrentItem(0) + self.addressBox.setCurrentItem(self.addressBox.currentItem()) self.initAddress(0, False) self.ENABLE_SAVE = True self.setSaveButton() @@ -397,13 +397,14 @@ if self.dataObject.isAttributeAllowed(addressType[self.addressID]): value = unicode(self.addressEdit.text()) if not (value==''): - self.dataObject.addAttributeValue(addressType[self.addressID], [value], True) + self.dataObject.addAttributeValue(addressType[self.addressID], [self.dataObject.postaladdressEncode(value)], True) self.addressID = id self.addressEdit.clear() if self.dataObject.hasAttribute(addressType[id]): tmpAddress = self.dataObject.getAttributeValue(addressType[id], 0) - self.addressEdit.setText(tmpAddress) + self.addressEdit.setText(self.dataObject.postaladdressDecode(tmpAddress)) + ############################################################################### @@ -583,7 +584,7 @@ if addressType[id] in self.allowedAttributes: value = unicode(self.addressEdit.text()) if not('' == value): - self.dataObject.addAttributeValue(addressType[id], [value], True) + self.dataObject.addAttributeValue(addressType[id], [self.dataObject.postaladdressEncode(value)], True) else: self.dataObject.deleteAttribute(addressType[id]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2007-10-11 17:52:41
|
Revision: 750 http://luma.svn.sourceforge.net/luma/?rev=750&view=rev Author: bgrotan Date: 2007-10-11 10:52:38 -0700 (Thu, 11 Oct 2007) Log Message: ----------- reset the addressBox to 'Business' when changing contacts Modified Paths: -------------- trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py Modified: trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py =================================================================== --- trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py 2007-10-11 17:46:14 UTC (rev 749) +++ trunk/luma/lib/luma/plugins/addressbook/AddressbookWidget.py 2007-10-11 17:52:38 UTC (rev 750) @@ -205,6 +205,7 @@ self.birthDateEdit.setDate(QDate(int(tmpList[0]), int(tmpList[1]), int(tmpList[2]))) self.addressID = 0 + self.addressBox.setCurrentItem(0) self.initAddress(0, False) self.ENABLE_SAVE = True self.setSaveButton() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bg...@us...> - 2007-10-11 17:46:27
|
Revision: 749 http://luma.svn.sourceforge.net/luma/?rev=749&view=rev Author: bgrotan Date: 2007-10-11 10:46:14 -0700 (Thu, 11 Oct 2007) Log Message: ----------- Added methods to encode/decode postal address according to rfc 2252 Modified Paths: -------------- trunk/luma/lib/luma/base/backend/SmartDataObject.py Modified: trunk/luma/lib/luma/base/backend/SmartDataObject.py =================================================================== --- trunk/luma/lib/luma/base/backend/SmartDataObject.py 2007-08-12 12:21:40 UTC (rev 748) +++ trunk/luma/lib/luma/base/backend/SmartDataObject.py 2007-10-11 17:46:14 UTC (rev 749) @@ -819,6 +819,34 @@ def checkObjectClassCombination(self): pass + +###############################################################################+ + + def postaladdressDecode(self, address): + """RFC 2252 requires a specific syntax for attributes + of type 'Postal Address'. This method ensures that + already wrong values in LDAP will can be shown correctly + in the GUI. + """ + address=address.replace('$','\n') + address=address.replace('\\24','$') + address=address.replace('\\5C','\\5c') + address=address.replace('\\5c','\\') + + return address + +###############################################################################+ + + def postaladdressEncode(self, address): + """RFC 2252 requires a specific syntax for attributes + of type 'Postal Address'. This method ensures that + it will be converted correctly before saving to LDAP. + """ + address=address.replace('\\','\\5c') + address=address.replace('$','\\24') + address=address.replace('\n','$') + + return address ############################################################################### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mor...@us...> - 2007-08-12 12:21:44
|
Revision: 748 http://luma.svn.sourceforge.net/luma/?rev=748&view=rev Author: morgajel Date: 2007-08-12 05:21:40 -0700 (Sun, 12 Aug 2007) Log Message: ----------- partial change- still not functional. - changed iconsets to icons - change qpopupmenu to qmenu - changed addTo to addAction, but reversed the menu and the action - commented out insertSeparators- we can add those back in when I have the time to look up the syntax - changed setCaption to setWindowTitle Modified Paths: -------------- branches/qt4/luma/lib/luma/base/gui/MainWinDesign.py Modified: branches/qt4/luma/lib/luma/base/gui/MainWinDesign.py =================================================================== --- branches/qt4/luma/lib/luma/base/gui/MainWinDesign.py 2007-08-02 11:56:03 UTC (rev 747) +++ branches/qt4/luma/lib/luma/base/gui/MainWinDesign.py 2007-08-12 12:21:40 UTC (rev 748) @@ -651,20 +651,20 @@ MainWinDesignLayout.addWidget(self.taskStack,0,0) self.about = QAction( "about",self) -# self.about.setIconSet(QIconSet(self.image0)) + self.about.setIcon(QIcon(self.image0)) self.editServerList = QAction("editServerList",self) -# self.editServerList.setIconSet(QIconSet(self.image1)) + self.editServerList.setIcon(QIcon(self.image1)) self.exitItem = QAction("exitItem",self) -# self.exitItem.setIconSet(QIconSet(self.image2)) + self.exitItem.setIcon(QIcon(self.image2)) self.menuConfigurePlugins = QAction("menuConfigurePlugins",self) -# self.menuConfigurePlugins.setIconSet(QIconSet(self.image3)) + self.menuConfigurePlugins.setIcon(QIcon(self.image3)) self.reload = QAction("reload",self) -# self.reload.setIconSet(QIconSet(self.image4)) + self.reload.setIcon(QIcon(self.image4)) self.selectLanguage = QAction("selectLanguage",self) -# self.selectLanguage.setIconSet(QIconSet(self.image5)) + self.selectLanguage.setIcon(QIcon(self.image5)) self.showLogger = QAction("showLogger",self) -# self.showLogger.toggled(0) -# self.showLogger.setIconSet(QIconSet(self.image6)) + self.showLogger.setChecked(0) + self.showLogger.setIcon(QIcon(self.image6)) @@ -672,23 +672,23 @@ self.menubar = QMenuBar(self) - self.Program = QPopupMenu(self) - self.showLogger.addTo(self.Program) - self.reload.addTo(self.Program) - self.Program.insertSeparator() - self.exitItem.addTo(self.Program) - self.Program.insertSeparator() - self.menubar.insertItem(QString(""),self.Program,1) + self.Program = QMenu(self) + self.Program.addAction(self.showLogger) + self.Program.addAction(self.reload) + self.Program.insertSeparator(self.exitItem) + self.Program.addAction(self.exitItem) +# self.Program.insertSeparator() +# self.menubar.insertItem(QString(""),self.Program,1) - self.Settings = QPopupMenu(self) - self.editServerList.addTo(self.Settings) - self.menuConfigurePlugins.addTo(self.Settings) - self.selectLanguage.addTo(self.Settings) - self.menubar.insertItem(QString(""),self.Settings,2) + self.Settings = QMenu(self) + self.Settings.addAction(self.editServerList) + self.Settings.addAction(self.menuConfigurePlugins) + self.Settings.addAction(self.selectLanguage) +# self.menubar.insertItem(QString(""),self.Settings,2) - self.Help = QPopupMenu(self) - self.about.addTo(self.Help) - self.menubar.insertItem(QString(""),self.Help,3) + self.Help = QMenu(self) + self.Help.addAction(self.about) +# self.menubar.insertItem(QString(""),self.Help,3) self.languageChange() @@ -706,7 +706,7 @@ def languageChange(self): - self.setCaption(self.__tr("Luma")) + self.setWindowTitle(self.__tr("Luma")) self.about.setText(self.__tr("About Luma...")) self.about.setMenuText(self.__tr("About Luma...")) self.editServerList.setText(self.__tr("Edit Server List...")) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mor...@us...> - 2007-08-02 11:56:07
|
Revision: 747 http://luma.svn.sourceforge.net/luma/?rev=747&view=rev Author: morgajel Date: 2007-08-02 04:56:03 -0700 (Thu, 02 Aug 2007) Log Message: ----------- this closes patch #1745395- removes redundant code and makes it possible for epydoc to read plugins. Modified Paths: -------------- trunk/luma/lib/luma/base/gui/MainWin.py trunk/luma/lib/luma/plugins/addressbook/__init__.py trunk/luma/lib/luma/plugins/admin_utils/__init__.py trunk/luma/lib/luma/plugins/browser_plugin/__init__.py trunk/luma/lib/luma/plugins/mass_creation_plugin/__init__.py trunk/luma/lib/luma/plugins/schemabrowser/__init__.py trunk/luma/lib/luma/plugins/search_plugin/__init__.py trunk/luma/lib/luma/plugins/template_plugin/__init__.py trunk/luma/lib/luma/plugins/usermanagement/__init__.py Modified: trunk/luma/lib/luma/base/gui/MainWin.py =================================================================== --- trunk/luma/lib/luma/base/gui/MainWin.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/base/gui/MainWin.py 2007-08-02 11:56:03 UTC (rev 747) @@ -193,7 +193,7 @@ tmpObject = self.PLUGINS[x] if tmpObject['load'] == True: if not (None == splash): - tmpMessage = "Loading plugin " + unicode(self.PLUGINS[x]['pluginUserString']) + tmpMessage = "Loading plugin " + unicode(self.trUtf8(self.PLUGINS[x]['pluginUserString'])) splash.message(tmpMessage, Qt.AlignLeft + Qt.AlignBottom, Qt.white) pluginNameList.append(self.PLUGINS[x]['pluginName']) @@ -215,7 +215,7 @@ # for x in pluginNameList: - name = self.PLUGINS[x]["pluginUserString"] + name = self.trUtf8(self.PLUGINS[x]["pluginUserString"]) icon = self.PLUGINS[x]["icon"] item = QListBoxPixmap(icon, QString(name)) self.pluginBox.insertItem(item) Modified: trunk/luma/lib/luma/plugins/addressbook/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/addressbook/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/addressbook/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -13,7 +13,7 @@ lumaPlugin = True pluginName = "addressbook" -pluginUserString = qApp.trUtf8("Addressbook") +pluginUserString = "Addressbook" version = "" author = "Wido Depping <wid...@gm...>" Modified: trunk/luma/lib/luma/plugins/admin_utils/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/admin_utils/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/admin_utils/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -13,7 +13,7 @@ lumaPlugin = True pluginName = "adminutils" -pluginUserString = qApp.trUtf8("Admin utilities") +pluginUserString = "Admin utilities" version = "" author = "Wido Depping <wid...@gm...>" Modified: trunk/luma/lib/luma/plugins/browser_plugin/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/browser_plugin/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/browser_plugin/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -13,7 +13,7 @@ lumaPlugin = True pluginName = "browser" -pluginUserString = qApp.trUtf8("Browser") +pluginUserString = "Browser" version = "" author = "Wido Depping <wid...@gm...>" Modified: trunk/luma/lib/luma/plugins/mass_creation_plugin/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/mass_creation_plugin/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/mass_creation_plugin/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -13,7 +13,7 @@ lumaPlugin = True pluginName = "massiveusercreation" -pluginUserString = qApp.trUtf8("Massive user creation") +pluginUserString = "Massive user creation" version = "" author = "Wido Depping <wid...@gm...>" Modified: trunk/luma/lib/luma/plugins/schemabrowser/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/schemabrowser/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/schemabrowser/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -13,7 +13,7 @@ lumaPlugin = True pluginName = "schemabrowser" -pluginUserString = qApp.trUtf8("Schemabrowser") +pluginUserString = "Schemabrowser" version = "" author = "Wido Depping <wid...@gm...>" Modified: trunk/luma/lib/luma/plugins/search_plugin/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/search_plugin/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/search_plugin/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -13,7 +13,7 @@ lumaPlugin = True pluginName = "search" -pluginUserString = qApp.trUtf8("Search") +pluginUserString = "Search" version = "" author = "Wido Depping <wid...@gm...>" Modified: trunk/luma/lib/luma/plugins/template_plugin/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/template_plugin/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/template_plugin/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -13,7 +13,7 @@ lumaPlugin = True pluginName = "template" -pluginUserString = qApp.trUtf8("Templates") +pluginUserString = "Templates" version = "" author = "Wido Depping <wid...@gm...>" Modified: trunk/luma/lib/luma/plugins/usermanagement/__init__.py =================================================================== --- trunk/luma/lib/luma/plugins/usermanagement/__init__.py 2007-08-02 00:11:30 UTC (rev 746) +++ trunk/luma/lib/luma/plugins/usermanagement/__init__.py 2007-08-02 11:56:03 UTC (rev 747) @@ -15,7 +15,7 @@ lumaPlugin = True pluginName = "usermanagement" -pluginUserString = qApp.trUtf8("Usermanagement") +pluginUserString = "Usermanagement" version = "" author = "Wido Depping <wid...@gm...>" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mor...@mo...> - 2007-08-02 01:16:15
|
yeah- I scripted pretty much that same exact thing- they were included in the commit as well if I remember correctly. > Have you rebuilt all the generated Design files as well? (watch out, long > lines): > $ export PYUIC="<pyuic with the right params for qt4>" # Don't know how this is done with qt4 > $ for i in `find branchs/qt4/luma -name '*.ui' |sed "s/\.ui$//"`; do $PYUIC "$i.ui" > "$i.py"; done > > |
From: <ve...@us...> - 2007-08-02 00:11:31
|
Revision: 746 http://luma.svn.sourceforge.net/luma/?rev=746&view=rev Author: vegarwe Date: 2007-08-01 17:11:30 -0700 (Wed, 01 Aug 2007) Log Message: ----------- When selecting a node we open a new connection and make a search just to find out if the items has any children. This information is only used to disable or enable the deletebutton (since not all LDAPservers implement recursive delete and Luma doesn't implement a fix). This is kinde broken. But now at least there is a sizelimit of one, so that selecting an item with many children isn't slowed down needlessly Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py Modified: trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py 2007-08-02 00:08:42 UTC (rev 745) +++ trunk/luma/lib/luma/base/utils/gui/AdvancedObjectWidget.py 2007-08-02 00:11:30 UTC (rev 746) @@ -108,7 +108,7 @@ dialog.exec_loop() return - success, resultList, exceptionObject = lumaConnection.search(self.ldapDataObject.dn, ldap.SCOPE_ONELEVEL, filter="(objectClass=*)", attrList=None, attrsonly=1) + success, resultList, exceptionObject = lumaConnection.search(self.ldapDataObject.dn, ldap.SCOPE_ONELEVEL, filter="(objectClass=*)", attrList=None, attrsonly=1, sizelimit=1) lumaConnection.unbind() # Our search succeeded. No errors This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2007-08-02 00:08:48
|
Revision: 745 http://luma.svn.sourceforge.net/luma/?rev=745&view=rev Author: vegarwe Date: 2007-08-01 17:08:42 -0700 (Wed, 01 Aug 2007) Log Message: ----------- Added support for sizelimit to all searches in Luma. I actually changed from LDAPObject.search to LDAPObject.search_ext which shounldn't break any, but might break non the less. Simple testing seems to be working fine Modified Paths: -------------- trunk/luma/lib/luma/base/backend/LumaConnection.py Modified: trunk/luma/lib/luma/base/backend/LumaConnection.py =================================================================== --- trunk/luma/lib/luma/base/backend/LumaConnection.py 2007-08-01 23:43:24 UTC (rev 744) +++ trunk/luma/lib/luma/base/backend/LumaConnection.py 2007-08-02 00:08:42 UTC (rev 745) @@ -63,7 +63,7 @@ ############################################################################### - def search(self, base="", scope=ldap.SCOPE_BASE, filter="(objectClass=*)", attrList=None, attrsonly=0): + def search(self, base="", scope=ldap.SCOPE_BASE, filter="(objectClass=*)", attrList=None, attrsonly=0, sizelimit=0): """Aynchronous search. """ @@ -75,6 +75,7 @@ workerThread.filter = filter workerThread.attrList = attrList workerThread.attrsonly = attrsonly + workerThread.sizelimit = sizelimit workerThread.start() while not workerThread.FINISHED: @@ -392,6 +393,8 @@ def __init__(self, serverObject): threading.Thread.__init__(self) self.ldapServerObject = serverObject + + self.sizelimit = 0 self.FINISHED = False self.result = [] @@ -399,7 +402,8 @@ def run(self): try: - resultId = self.ldapServerObject.search(self.base, self.scope, self.filter, self.attrList, self.attrsonly) + print "sellf.sizelimit %s" % self.sizelimit + resultId = self.ldapServerObject.search_ext(self.base, self.scope, self.filter, self.attrList, self.attrsonly, sizelimit=self.sizelimit) while 1: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2007-08-01 23:43:25
|
Revision: 744 http://luma.svn.sourceforge.net/luma/?rev=744&view=rev Author: vegarwe Date: 2007-08-01 16:43:24 -0700 (Wed, 01 Aug 2007) Log Message: ----------- New features! It's now possible to add a searchfilter to a item in the browser widget. Espescialy useful when browsing large threes. Should it be possible to add sizelimit as well? Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py Modified: trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2007-08-01 20:21:10 UTC (rev 743) +++ trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2007-08-01 23:43:24 UTC (rev 744) @@ -167,7 +167,7 @@ oldAliasValue = self.aliasDict[serverName] self.aliasDict[serverName] = False - success, resultList, exceptionObject = self.getLdapItemChildren(serverName, dn, 0, ['dn', 'objectClass']) + success, resultList, exceptionObject = self.getLdapItemChildren(serverName, dn, 0, ['dn', 'objectClass'], filter=item.filter) if success: if len(resultList) == 0: @@ -270,7 +270,7 @@ ############################################################################### - def getLdapItemChildren(self, serverName, dn, allLevel, noAttributes=None): + def getLdapItemChildren(self, serverName, dn, allLevel, noAttributes=None, filter=None): """ Return a list of children a ldap object has. allLevel == 1: @@ -279,6 +279,8 @@ allLevel == 0: get only next level """ + if filter == None: + filter = self.searchObjectClass serverMeta = self.serverListObject.getServerObject(serverName) searchResult = None @@ -300,7 +302,7 @@ searchLevel = ldap.SCOPE_ONELEVEL - success, resultList, exceptionObject = conObject.search(dn, searchLevel,self.searchObjectClass, noAttributes, 0) + success, resultList, exceptionObject = conObject.search(dn, searchLevel, filter, noAttributes, 0) conObject.unbind() @@ -615,6 +617,7 @@ listIterator += 1 popupMenu.insertItem(self.trUtf8("Edit server settings"), self.editServerSettings) + popupMenu.insertItem(self.trUtf8("Set searchfilter"), self.setItemFilter) menuID = popupMenu.insertItem(QIconSet(QPixmap(aliasIconFile)), self.trUtf8("Follow Aliases"), self.enableAliases) popupMenu.setItemChecked(menuID, self.aliasDict[server]) @@ -948,6 +951,27 @@ ############################################################################### + def setItemFilter(self): + result = QInputDialog.getText(\ + self.trUtf8("Item searchfilter"), + self.trUtf8("Please enter a searchfilter for the given item:"), + QLineEdit.Normal) + + if result[1] == False: + return + + if result[0] == "": + self.popupItem.filter = None + else: + self.popupItem.filter = unicode(result[0]) + + if self.popupItem.isOpen(): + self.itemCollapsed(self.popupItem) + self.itemExpanded(self.popupItem) + self.popupItem.setOpen(1) + +############################################################################### + def reopenDN(self, serverString, dnString): """ Reopens the listitem for the given dnString. @@ -999,6 +1023,8 @@ self.serverType = False self.baseType = False self.ldapType = False + + self.filter = None # DN of the entry if it is not a server item self.dn = None This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ve...@us...> - 2007-08-01 20:21:11
|
Revision: 743 http://luma.svn.sourceforge.net/luma/?rev=743&view=rev Author: vegarwe Date: 2007-08-01 13:21:10 -0700 (Wed, 01 Aug 2007) Log Message: ----------- Don't set expandable = false just because there was en error. We want to be able to try again to see the errormessage once more. Also works better with the passwordprompt Modified Paths: -------------- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py Modified: trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py =================================================================== --- trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2007-08-01 20:10:58 UTC (rev 742) +++ trunk/luma/lib/luma/base/utils/gui/BrowserWidget.py 2007-08-01 20:21:10 UTC (rev 743) @@ -193,7 +193,7 @@ else: self.aliasDict[serverName] = oldAliasValue - item.setExpandable(0) + #item.setExpandable(0) dialog = LumaErrorDialog() errorMsg = self.trUtf8("Could not expand entry.<br><br>Reason: ") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |