Skip to content

Commit

Permalink
[auth] Update wording of auth settings widget; add formatted warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
dakcarto committed Oct 4, 2017
1 parent 74e9242 commit 3852e5d
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 72 deletions.
16 changes: 15 additions & 1 deletion python/gui/auth/qgsauthsettingswidget.sip
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ class QgsAuthSettingsWidget : QWidget
%End
public:

enum WarningType
{
ProjectFile,
UserSettings
};

explicit QgsAuthSettingsWidget( QWidget *parent /TransferThis/ = 0,
const QString &configId = QString(),
const QString &username = QString(),
Expand All @@ -41,6 +47,7 @@ class QgsAuthSettingsWidget : QWidget
%Docstring
setWarningText set the text of the warning label
\param warningText the text of the warning label
.. seealso:: formattedWarning()
%End

void setBasicText( const QString &basicText );
Expand Down Expand Up @@ -101,6 +108,14 @@ class QgsAuthSettingsWidget : QWidget
:rtype: str
%End

static const QString formattedWarning( WarningType warning );
%Docstring
warning text message based upon where credentials are stored
\param enum of warning type
:return: pre-formatted warning text
:rtype: str
%End

bool btnConvertToEncryptedIsEnabled( ) const;
%Docstring
convertButtonEnabled, mainly useful for unit tests
Expand Down Expand Up @@ -145,7 +160,6 @@ class QgsAuthSettingsWidget : QWidget
:rtype: bool
%End


bool configurationTabIsSelected( );
%Docstring
configurationTabIsSelected
Expand Down
2 changes: 1 addition & 1 deletion src/app/qgsoptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WindowFlags fl, const QList<QgsOpti
mAuthSettings->setDataprovider( QStringLiteral( "proxy" ) );
QString authcfg = mSettings->value( QStringLiteral( "proxy/authcfg" ) ).toString();
mAuthSettings->setConfigId( authcfg );
mAuthSettings->setWarningText( tr( "<b style=\"color:red\">Warning: credentials are stored unencrypted (in clear text) in the system settings!</b>" ) );
mAuthSettings->setWarningText( mAuthSettings->formattedWarning( QgsAuthSettingsWidget::UserSettings ) );

//Web proxy settings
grpProxy->setChecked( mSettings->value( QStringLiteral( "proxy/proxyEnabled" ), "0" ).toBool() );
Expand Down
14 changes: 14 additions & 0 deletions src/gui/auth/qgsauthsettingswidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ QgsAuthSettingsWidget::QgsAuthSettingsWidget( QWidget *parent,
mAuthConfigSelect->setConfigId( configId );
}
setBasicText( "" );
// default to warning about basic settings stored in project file
setWarningText( formattedWarning( ProjectFile ) );
connect( btnConvertToEncrypted, &QPushButton::clicked, this, &QgsAuthSettingsWidget::convertToEncrypted );
connect( txtUserName, &QLineEdit::textChanged, this, &QgsAuthSettingsWidget::userNameTextChanged );
connect( txtPassword, &QLineEdit::textChanged, this, &QgsAuthSettingsWidget::passwordTextChanged );
Expand Down Expand Up @@ -99,6 +101,18 @@ const QString QgsAuthSettingsWidget::dataprovider() const
return mDataprovider;
}

const QString QgsAuthSettingsWidget::formattedWarning( WarningType warning )
{
QString out = tr( "<div>Warning: credentials stored as plain text in %1.</div>" );
switch ( warning )
{
case ProjectFile:
return out.arg( tr( "project file" ) );
case UserSettings:
return out.arg( tr( "user settings" ) );
}
}

const QString QgsAuthSettingsWidget::configId() const
{
return mAuthConfigSelect->configId();
Expand Down
17 changes: 16 additions & 1 deletion src/gui/auth/qgsauthsettingswidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ class GUI_EXPORT QgsAuthSettingsWidget : public QWidget, private Ui::QgsAuthSett

public:

//! Type of certificate usage
enum WarningType
{
ProjectFile,
UserSettings
};
Q_ENUM( WarningType )

/**
* Create a dialog for setting an associated authentication config, either
* from existing configs, or creating/removing them from auth database
Expand All @@ -53,6 +61,7 @@ class GUI_EXPORT QgsAuthSettingsWidget : public QWidget, private Ui::QgsAuthSett
/**
* \brief setWarningText set the text of the warning label
* \param warningText the text of the warning label
* \see formattedWarning()
*/
void setWarningText( const QString &warningText );

Expand Down Expand Up @@ -110,6 +119,13 @@ class GUI_EXPORT QgsAuthSettingsWidget : public QWidget, private Ui::QgsAuthSett
*/
const QString dataprovider( ) const;

/**
* \brief warning text message based upon where credentials are stored
* \param enum of warning type
* \return pre-formatted warning text
*/
static const QString formattedWarning( WarningType warning );

/**
* \brief convertButtonEnabled, mainly useful for unit tests
* \return true if the convert button is enabled
Expand Down Expand Up @@ -151,7 +167,6 @@ class GUI_EXPORT QgsAuthSettingsWidget : public QWidget, private Ui::QgsAuthSett
*/
bool storeUsernameIsChecked( ) const;


/**
* \brief configurationTabIsSelected
* \return true if the configuration tab is the currently selected tab
Expand Down
138 changes: 69 additions & 69 deletions src/ui/auth/qgsauthsettingswidget.ui
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>315</width>
<height>243</height>
<width>226</width>
<height>179</height>
</rect>
</property>
<property name="windowTitle">
Expand Down Expand Up @@ -69,7 +69,7 @@
</sizepolicy>
</property>
<property name="text">
<string>Choose or create a configuration.</string>
<string>Choose or create an authentication configuration</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
Expand Down Expand Up @@ -101,7 +101,7 @@
</sizepolicy>
</property>
<property name="text">
<string>Credentials are encrypted and stored in the QGIS authentication database. </string>
<string>Configurations store encrypted credentials in the QGIS authentication database.</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
Expand Down Expand Up @@ -146,26 +146,66 @@
<property name="spacing">
<number>6</number>
</property>
<item row="6" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
<item row="4" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="btnConvertToEncrypted">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Convert to configuration</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="2">
<widget class="QCheckBox" name="cbStorePassword">
<property name="text">
<string>Store</string>
</property>
<property name="sizeHint" stdset="0">
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0" colspan="3">
<widget class="QLabel" name="lblWarning">
<property name="styleSheet">
<string notr="true">QLabel{color: rgb(255, 0, 0);font-weight: bold;}</string>
</property>
<property name="text">
<string>Warning text!</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="txtUserName">
<property name="minimumSize">
<size>
<width>0</width>
<width>80</width>
<height>0</height>
</size>
</property>
</spacer>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<item row="1" column="2">
<widget class="QCheckBox" name="cbStoreUsername">
<property name="text">
<string>&amp;User name</string>
<string>Store</string>
</property>
<property name="buddy">
<cstring>txtUserName</cstring>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
Expand Down Expand Up @@ -195,49 +235,26 @@
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="txtUserName">
<property name="minimumSize">
<item row="6" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>80</width>
<width>0</width>
<height>0</height>
</size>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QCheckBox" name="cbStoreUsername">
<property name="text">
<string>Store</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QCheckBox" name="cbStorePassword">
<property name="text">
<string>Store</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</spacer>
</item>
<item row="3" column="0" colspan="3">
<widget class="QLabel" name="lblWarning">
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600; color:#ff0000;&quot;&gt;Warning: credentials stored unencrypted!&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<string>&amp;User name</string>
</property>
<property name="wordWrap">
<bool>true</bool>
<property name="buddy">
<cstring>txtUserName</cstring>
</property>
</widget>
</item>
Expand All @@ -257,23 +274,6 @@
</property>
</widget>
</item>
<item row="4" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="btnConvertToEncrypted">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Convert to configuration</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
Expand Down

0 comments on commit 3852e5d

Please sign in to comment.