Skip to content

Commit

Permalink
[auth] Use new auth settings widget in http connections dialogs
Browse files Browse the repository at this point in the history
  • Loading branch information
elpaso committed Oct 2, 2017
1 parent c57b9e7 commit 7ee03a6
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 115 deletions.
26 changes: 9 additions & 17 deletions src/gui/qgsnewhttpconnection.cpp
Expand Up @@ -15,7 +15,7 @@
* * * *
***************************************************************************/ ***************************************************************************/
#include "qgsnewhttpconnection.h" #include "qgsnewhttpconnection.h"
#include "qgsauthconfigselect.h" #include "qgsauthsettingswidget.h"
#include "qgssettings.h" #include "qgssettings.h"
#include "qgshelp.h" #include "qgshelp.h"


Expand Down Expand Up @@ -60,9 +60,6 @@ QgsNewHttpConnection::QgsNewHttpConnection( QWidget *parent, ConnectionTypes typ
cmbVersion->addItem( tr( "1.1" ) ); cmbVersion->addItem( tr( "1.1" ) );
cmbVersion->addItem( tr( "2.0" ) ); cmbVersion->addItem( tr( "2.0" ) );


mAuthConfigSelect = new QgsAuthConfigSelect( this );
tabAuth->insertTab( 1, mAuthConfigSelect, tr( "Configurations" ) );

if ( !connectionName.isEmpty() ) if ( !connectionName.isEmpty() )
{ {
// populate the dialog with the information stored for the connection // populate the dialog with the information stored for the connection
Expand All @@ -77,15 +74,10 @@ QgsNewHttpConnection::QgsNewHttpConnection( QWidget *parent, ConnectionTypes typ


updateServiceSpecificSettings(); updateServiceSpecificSettings();


txtUserName->setText( settings.value( credentialsKey + "/username" ).toString() ); // Authentication
txtPassword->setText( settings.value( credentialsKey + "/password" ).toString() ); mAuthSettings->setUsername( settings.value( credentialsKey + "/username" ).toString() );

mAuthSettings->setPassword( settings.value( credentialsKey + "/password" ).toString() );
QString authcfg = settings.value( credentialsKey + "/authcfg" ).toString(); mAuthSettings->setConfigId( settings.value( credentialsKey + "/authcfg" ).toString() );
mAuthConfigSelect->setConfigId( authcfg );
if ( !authcfg.isEmpty() )
{
tabAuth->setCurrentIndex( tabAuth->indexOf( mAuthConfigSelect ) );
}
} }


if ( !( mTypes & ConnectionWms ) && !( mTypes & ConnectionWcs ) ) if ( !( mTypes & ConnectionWms ) && !( mTypes & ConnectionWcs ) )
Expand Down Expand Up @@ -188,7 +180,7 @@ bool QgsNewHttpConnection::validate()
return false; return false;
} }


if ( !txtPassword->text().isEmpty() && if ( ! mAuthSettings->password().isEmpty() &&
QMessageBox::question( this, QMessageBox::question( this,
tr( "Saving passwords" ), tr( "Saving passwords" ),
trUtf8( "WARNING: You have entered a password. It will be stored in unsecured plain text in your project files and your home directory (Unix-like OS) or user profile (Windows). If you want to avoid this, press Cancel and either:\n\na) Don't provide a password in the connection settings — it will be requested interactively when needed;\nb) Use the Configuration tab to add your credentials in an HTTP Basic Authentication method and store them in an encrypted database." ), trUtf8( "WARNING: You have entered a password. It will be stored in unsecured plain text in your project files and your home directory (Unix-like OS) or user profile (Windows). If you want to avoid this, press Cancel and either:\n\na) Don't provide a password in the connection settings — it will be requested interactively when needed;\nb) Use the Configuration tab to add your credentials in an HTTP Basic Authentication method and store them in an encrypted database." ),
Expand Down Expand Up @@ -372,10 +364,10 @@ void QgsNewHttpConnection::accept()
settings.setValue( wfsKey + "/maxnumfeatures", txtMaxNumFeatures->text() ); settings.setValue( wfsKey + "/maxnumfeatures", txtMaxNumFeatures->text() );
} }


settings.setValue( credentialsKey + "/username", txtUserName->text() ); settings.setValue( credentialsKey + "/username", mAuthSettings->username() );
settings.setValue( credentialsKey + "/password", txtPassword->text() ); settings.setValue( credentialsKey + "/password", mAuthSettings->password() );


settings.setValue( credentialsKey + "/authcfg", mAuthConfigSelect->configId() ); settings.setValue( credentialsKey + "/authcfg", mAuthSettings->configId() );


settings.setValue( mBaseKey + "/selected", txtName->text() ); settings.setValue( mBaseKey + "/selected", txtName->text() );


Expand Down
3 changes: 1 addition & 2 deletions src/gui/qgsnewhttpconnection.h
Expand Up @@ -23,7 +23,7 @@
#include "qgsguiutils.h" #include "qgsguiutils.h"
#include "qgis_gui.h" #include "qgis_gui.h"


class QgsAuthConfigSelect; class QgsAuthSettingsWidget;


/** \ingroup gui /** \ingroup gui
* \brief Dialog to allow the user to configure and save connection * \brief Dialog to allow the user to configure and save connection
Expand Down Expand Up @@ -139,7 +139,6 @@ class GUI_EXPORT QgsNewHttpConnection : public QDialog, private Ui::QgsNewHttpCo
QString mBaseKey; QString mBaseKey;
QString mCredentialsBaseKey; QString mCredentialsBaseKey;
QString mOriginalConnName; //store initial name to delete entry in case of rename QString mOriginalConnName; //store initial name to delete entry in case of rename
QgsAuthConfigSelect *mAuthConfigSelect = nullptr;
void showHelp(); void showHelp();


}; };
Expand Down
2 changes: 2 additions & 0 deletions src/providers/geonode/CMakeLists.txt
Expand Up @@ -20,12 +20,14 @@ QT5_WRAP_CPP(GEONODE_MOC_SRCS ${GEONODE_MOC_HDRS})
INCLUDE_DIRECTORIES( INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/src/core ${CMAKE_SOURCE_DIR}/src/core
${CMAKE_SOURCE_DIR}/src/core/raster ${CMAKE_SOURCE_DIR}/src/core/raster
${CMAKE_SOURCE_DIR}/src/core/auth
${CMAKE_SOURCE_DIR}/src/core/geocms/geonode ${CMAKE_SOURCE_DIR}/src/core/geocms/geonode
${CMAKE_SOURCE_DIR}/src/core/geometry ${CMAKE_SOURCE_DIR}/src/core/geometry
${CMAKE_SOURCE_DIR}/src/core/metadata ${CMAKE_SOURCE_DIR}/src/core/metadata
${CMAKE_SOURCE_DIR}/src/core/symbology ${CMAKE_SOURCE_DIR}/src/core/symbology
${CMAKE_SOURCE_DIR}/src/core/expression ${CMAKE_SOURCE_DIR}/src/core/expression
${CMAKE_SOURCE_DIR}/src/gui ${CMAKE_SOURCE_DIR}/src/gui
${CMAKE_SOURCE_DIR}/src/gui/auth


${CMAKE_BINARY_DIR}/src/core ${CMAKE_BINARY_DIR}/src/core
${CMAKE_BINARY_DIR}/src/gui ${CMAKE_BINARY_DIR}/src/gui
Expand Down
118 changes: 22 additions & 96 deletions src/ui/qgsnewhttpconnectionbase.ui
Expand Up @@ -26,7 +26,7 @@
<string>Connection details</string> <string>Connection details</string>
</property> </property>
<layout class="QGridLayout"> <layout class="QGridLayout">
<item row="8" column="0" colspan="2"> <item row="6" column="0" colspan="2">
<widget class="QGroupBox" name="mWfsOptionsGroupBox"> <widget class="QGroupBox" name="mWfsOptionsGroupBox">
<property name="title"> <property name="title">
<string>WFS Options</string> <string>WFS Options</string>
Expand Down Expand Up @@ -77,96 +77,14 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="18" column="0" colspan="2"> <item row="16" column="0" colspan="2">
<widget class="QPushButton" name="mTestConnectionButton"> <widget class="QPushButton" name="mTestConnectionButton">
<property name="text"> <property name="text">
<string>&amp;Test Connection</string> <string>&amp;Test Connection</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="0" colspan="2"> <item row="10" column="0" colspan="2">
<widget class="QTabWidget" name="tabAuth">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Authentication</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>If the service requires basic authentication, enter a user name and optional password</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&amp;User name</string>
</property>
<property name="buddy">
<cstring>txtUserName</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="txtUserName"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Password</string>
</property>
<property name="buddy">
<cstring>txtPassword</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QgsPasswordLineEdit" name="txtPassword">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
<item row="12" column="0" colspan="2">
<widget class="QGroupBox" name="mWmsOptionsGroupBox"> <widget class="QGroupBox" name="mWmsOptionsGroupBox">
<property name="title"> <property name="title">
<string>WMS Options</string> <string>WMS Options</string>
Expand Down Expand Up @@ -209,7 +127,7 @@
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="lblDpiMode"> <widget class="QLabel" name="lblDpiMode">
<property name="text"> <property name="text">
<string>DPI-Mode</string> <string>&amp;DPI-Mode</string>
</property> </property>
<property name="buddy"> <property name="buddy">
<cstring>cmbDpiMode</cstring> <cstring>cmbDpiMode</cstring>
Expand Down Expand Up @@ -241,7 +159,7 @@
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="TextLabel1_2"> <widget class="QLabel" name="TextLabel1_2">
<property name="text"> <property name="text">
<string>Name</string> <string>&amp;Name</string>
</property> </property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
Expand Down Expand Up @@ -273,7 +191,7 @@
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="TextLabel1"> <widget class="QLabel" name="TextLabel1">
<property name="text"> <property name="text">
<string>URL</string> <string>UR&amp;L</string>
</property> </property>
<property name="margin"> <property name="margin">
<number>5</number> <number>5</number>
Expand All @@ -292,6 +210,18 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="4" column="0">
<widget class="QGroupBox" name="mAuthGroupBox">
<property name="title">
<string>Authentication</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QgsAuthSettingsWidget" name="mAuthSettings" native="true"/>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
Expand All @@ -307,16 +237,12 @@
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<customwidgets> <customwidgets>
<customwidget> <customwidget>
<class>QgsPasswordLineEdit</class> <class>QgsAuthSettingsWidget</class>
<extends>QLineEdit</extends> <extends>QWidget</extends>
<header>qgspasswordlineedit.h</header> <header>auth/qgsauthsettingswidget.h</header>
<container>1</container>
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<tabstops>
<tabstop>tabAuth</tabstop>
<tabstop>txtUserName</tabstop>
<tabstop>txtPassword</tabstop>
</tabstops>
<resources/> <resources/>
<connections> <connections>
<connection> <connection>
Expand Down

0 comments on commit 7ee03a6

Please sign in to comment.