18 #include "ui_qgsauthmethodplugins.h"    23 #include <QTableWidget>    39     mAuthNotifyLayout = 
new QVBoxLayout;
    40     this->setLayout( mAuthNotifyLayout );
    42     mAuthNotifyLayout->addWidget( mAuthNotify );
    47     connect( buttonBox, &QDialogButtonBox::rejected, 
this, &QDialog::reject );
    54 void QgsAuthMethodPlugins::setupTable()
    56   tblAuthPlugins->setColumnCount( 3 );
    57   tblAuthPlugins->verticalHeader()->hide();
    58   tblAuthPlugins->horizontalHeader()->setVisible( 
true );
    59   tblAuthPlugins->setHorizontalHeaderItem( 0, 
new QTableWidgetItem( tr( 
"Method" ) ) );
    60   tblAuthPlugins->setHorizontalHeaderItem( 1, 
new QTableWidgetItem( tr( 
"Description" ) ) );
    61   tblAuthPlugins->setHorizontalHeaderItem( 2, 
new QTableWidgetItem( tr( 
"Works with" ) ) );
    62   tblAuthPlugins->horizontalHeader()->setStretchLastSection( 
true );
    63   tblAuthPlugins->setAlternatingRowColors( 
true );
    64   tblAuthPlugins->setColumnWidth( 0, 150 );
    65   tblAuthPlugins->setColumnWidth( 1, 300 );
    67   tblAuthPlugins->verticalHeader()->setSectionResizeMode( QHeaderView::ResizeToContents );
    68   tblAuthPlugins->setSortingEnabled( 
true );
    69   tblAuthPlugins->setSelectionBehavior( QAbstractItemView::SelectRows );
    72 void QgsAuthMethodPlugins::populateTable()
    77   for ( QgsAuthMethodsMap::const_iterator it = authmethods.constBegin(); it != authmethods.constEnd(); ++it, i++ )
    85     QTableWidgetItem *twi = 
new QTableWidgetItem( authmethod->key() );
    86     twi->setFlags( twi->flags() & ~Qt::ItemIsEditable );
    87     tblAuthPlugins->setItem( i, 0, twi );
    89     twi = 
new QTableWidgetItem( authmethod->displayDescription() );
    90     twi->setFlags( twi->flags() & ~Qt::ItemIsEditable );
    91     tblAuthPlugins->setItem( i, 1, twi );
    93     twi = 
new QTableWidgetItem( authmethod->supportedDataProviders().join( QStringLiteral( 
", " ) ) );
    94     twi->setFlags( twi->flags() & ~Qt::ItemIsEditable );
    95     tblAuthPlugins->setItem( i, 2, twi );
    97   tblAuthPlugins->sortItems( 0 );
   107   connect( btnCertManager, &QPushButton::clicked, 
this, &QgsAuthEditorWidgets::btnCertManager_clicked );
   108   connect( btnAuthPlugins, &QPushButton::clicked, 
this, &QgsAuthEditorWidgets::btnAuthPlugins_clicked );
   111     wdgtConfigEditor->setRelayMessages( 
false );
   112     wdgtConfigEditor->setShowUtilitiesButton( 
false );
   113     setupUtilitiesMenu();
   117     grpbxManagers->setEnabled( 
false );
   121 void QgsAuthEditorWidgets::btnCertManager_clicked()
   124   dlg->setWindowModality( Qt::ApplicationModal );
   125   dlg->resize( 750, 500 );
   130 void QgsAuthEditorWidgets::btnAuthPlugins_clicked()
   133   dlg->setWindowModality( Qt::WindowModal );
   134   dlg->resize( 675, 500 );
   139 void QgsAuthEditorWidgets::setupUtilitiesMenu()
   142            this, &QgsAuthEditorWidgets::authMessageOut );
   145   mActionSetMasterPassword = 
new QAction( tr( 
"Input master password" ), 
this );
   146   mActionClearCachedMasterPassword = 
new QAction( tr( 
"Clear cached master password" ), 
this );
   147   mActionResetMasterPassword = 
new QAction( tr( 
"Reset master password" ), 
this );
   148   mActionClearCachedAuthConfigs = 
new QAction( tr( 
"Clear cached authentication configurations" ), 
this );
   149   mActionRemoveAuthConfigs = 
new QAction( tr( 
"Remove all authentication configurations" ), 
this );
   150   mActionEraseAuthDatabase = 
new QAction( tr( 
"Erase authentication database" ), 
this );
   152   mActionClearAccessCacheNow = 
new QAction( tr( 
"Clear network authentication access cache" ), 
this );
   153   mActionAutoClearAccessCache = 
new QAction( tr( 
"Automatically clear network authentication access cache on SSL errors" ), 
this );
   154   mActionAutoClearAccessCache->setCheckable( 
true );
   155   mActionAutoClearAccessCache->setChecked( 
QgsSettings().value( QStringLiteral( 
"clear_auth_cache_on_errors" ), 
true, QgsSettings::Section::Auth ).toBool( ) );
   157   mActionPasswordHelperSync = 
new QAction( tr( 
"Store/update the master password in your %1" )
   159   mActionPasswordHelperDelete = 
new QAction( tr( 
"Clear the master password from your %1" )
   161   mActionPasswordHelperEnable = 
new QAction( tr( 
"Integrate master password with your %1" )
   163   mActionPasswordHelperLoggingEnable = 
new QAction( tr( 
"Enable password helper debug log" ), 
this );
   165   mActionPasswordHelperEnable->setCheckable( 
true );
   168   mActionPasswordHelperLoggingEnable->setCheckable( 
true );
   171   connect( mActionSetMasterPassword, &QAction::triggered, 
this, &QgsAuthEditorWidgets::setMasterPassword );
   172   connect( mActionClearCachedMasterPassword, &QAction::triggered, 
this, &QgsAuthEditorWidgets::clearCachedMasterPassword );
   173   connect( mActionResetMasterPassword, &QAction::triggered, 
this, &QgsAuthEditorWidgets::resetMasterPassword );
   174   connect( mActionClearCachedAuthConfigs, &QAction::triggered, 
this, &QgsAuthEditorWidgets::clearCachedAuthenticationConfigs );
   175   connect( mActionRemoveAuthConfigs, &QAction::triggered, 
this, &QgsAuthEditorWidgets::removeAuthenticationConfigs );
   176   connect( mActionEraseAuthDatabase, &QAction::triggered, 
this, &QgsAuthEditorWidgets::eraseAuthenticationDatabase );
   178   connect( mActionPasswordHelperSync, &QAction::triggered, 
this, &QgsAuthEditorWidgets::passwordHelperSync );
   179   connect( mActionPasswordHelperDelete, &QAction::triggered, 
this, &QgsAuthEditorWidgets::passwordHelperDelete );
   180   connect( mActionPasswordHelperEnable, &QAction::triggered, 
this, &QgsAuthEditorWidgets::passwordHelperEnableTriggered );
   181   connect( mActionPasswordHelperLoggingEnable, &QAction::triggered, 
this, &QgsAuthEditorWidgets::passwordHelperLoggingEnableTriggered );
   183   connect( mActionClearAccessCacheNow, &QAction::triggered, 
this, [ = ]
   186     messageBar()->
pushSuccess( tr( 
"Auth cache cleared" ), tr( 
"Network authentication cache has been cleared" ) );
   188   connect( mActionAutoClearAccessCache, &QAction::triggered, 
this, [ ]( 
bool checked )
   190     QgsSettings().
setValue( QStringLiteral( 
"clear_auth_cache_on_errors" ), checked, QgsSettings::Section::Auth );
   193   mAuthUtilitiesMenu = 
new QMenu( 
this );
   194   mAuthUtilitiesMenu->addAction( mActionSetMasterPassword );
   195   mAuthUtilitiesMenu->addAction( mActionClearCachedMasterPassword );
   196   mAuthUtilitiesMenu->addAction( mActionResetMasterPassword );
   197   mAuthUtilitiesMenu->addSeparator();
   198   mAuthUtilitiesMenu->addAction( mActionClearAccessCacheNow );
   199   mAuthUtilitiesMenu->addAction( mActionAutoClearAccessCache );
   200   mAuthUtilitiesMenu->addSeparator();
   201   mAuthUtilitiesMenu->addAction( mActionPasswordHelperEnable );
   202   mAuthUtilitiesMenu->addAction( mActionPasswordHelperSync );
   203   mAuthUtilitiesMenu->addAction( mActionPasswordHelperDelete );
   204   mAuthUtilitiesMenu->addAction( mActionPasswordHelperLoggingEnable );
   205   mAuthUtilitiesMenu->addSeparator();
   206   mAuthUtilitiesMenu->addAction( mActionClearCachedAuthConfigs );
   207   mAuthUtilitiesMenu->addAction( mActionRemoveAuthConfigs );
   208   mAuthUtilitiesMenu->addSeparator();
   209   mAuthUtilitiesMenu->addAction( mActionEraseAuthDatabase );
   211   btnAuthUtilities->setMenu( mAuthUtilitiesMenu );
   214 void QgsAuthEditorWidgets::setMasterPassword()
   219 void QgsAuthEditorWidgets::clearCachedMasterPassword()
   224 void QgsAuthEditorWidgets::resetMasterPassword()
   229 void QgsAuthEditorWidgets::clearCachedAuthenticationConfigs()
   234 void QgsAuthEditorWidgets::removeAuthenticationConfigs()
   239 void QgsAuthEditorWidgets::eraseAuthenticationDatabase()
   246   int levelint = 
static_cast<int>( level );
   250 void QgsAuthEditorWidgets::passwordHelperDelete()
   255 void QgsAuthEditorWidgets::passwordHelperSync()
   260 void QgsAuthEditorWidgets::passwordHelperEnableTriggered()
   266 void QgsAuthEditorWidgets::passwordHelperLoggingEnableTriggered()
   276 int QgsAuthEditorWidgets::messageTimeout()
   279   return settings.
value( QStringLiteral( 
"qgis/messageTimeout" ), 5 ).toInt();
 static void resetMasterPassword(QgsMessageBar *msgbar, int timeout=0, QWidget *parent=nullptr)
Reset the cached master password, updating its hash in authentication database and resetting all exis...
 
static void eraseAuthenticationDatabase(QgsMessageBar *msgbar, int timeout=0, QWidget *parent=nullptr)
Completely clear out the authentication database (configs and master password) 
 
void messageOut(const QString &message, const QString &tag=QgsAuthManager::AUTH_MAN_TAG, QgsAuthManager::MessageLevel level=QgsAuthManager::INFO) const
Custom logging signal to relay to console output and QgsMessageLog. 
 
Dialog for viewing available authentication method plugins. 
 
This class is a composition of two QSettings instances: 
 
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key. 
 
static void clearCachedMasterPassword(QgsMessageBar *msgbar, int timeout=0)
Clear the currently cached master password (not its hash in database) 
 
static void removeAuthenticationConfigs(QgsMessageBar *msgbar, int timeout=0, QWidget *parent=nullptr)
Remove all authentication configs. 
 
A bar for displaying non-blocking messages to the user. 
 
static void setMasterPassword(QgsMessageBar *msgbar, int timeout=0)
Sets the cached master password (and verifies it if its hash is in authentication database) ...
 
MessageLevel
Level for messages This will be used both for message log and message bar in application. 
 
void pushSuccess(const QString &title, const QString &message)
Pushes a success message with default timeout to the message bar. 
 
MessageLevel
Message log level (mirrors that of QgsMessageLog, so it can also output there) 
 
static const QString AUTH_PASSWORD_HELPER_DISPLAY_NAME
The display name of the password helper (platform dependent) 
 
static void passwordHelperLoggingEnable(bool enabled, QgsMessageBar *msgbar, int timeout=0)
Sets password helper logging enabled (enable/disable) 
 
static void clearCachedAuthenticationConfigs(QgsMessageBar *msgbar, int timeout=0)
Clear all cached authentication configs for session. 
 
Dialog wrapper for widget to manage available certificate editors. 
 
QgsAuthMethodPlugins(QWidget *parent=nullptr)
Construct a dialog for viewing available authentication method plugins. 
 
void pushMessage(const QString &text, Qgis::MessageLevel level=Qgis::Info, int duration=5)
convenience method for pushing a message to the bar 
 
static void passwordHelperEnable(bool enabled, QgsMessageBar *msgbar, int timeout=0)
Sets password helper enabled (enable/disable) 
 
static QgsAuthManager * authManager()
Returns the application's authentication manager instance. 
 
static QgsNetworkAccessManager * instance(Qt::ConnectionType connectionType=Qt::BlockingQueuedConnection)
Returns a pointer to the active QgsNetworkAccessManager for the current thread. 
 
static void passwordHelperSync(QgsMessageBar *msgbar, int timeout=0)
Store master password into the wallet. 
 
Abstract base class for authentication method plugins. 
 
void setValue(const QString &key, const QVariant &value, QgsSettings::Section section=QgsSettings::NoSection)
Sets the value of setting key to value. 
 
QHash< QString, QgsAuthMethod * > QgsAuthMethodsMap
 
static void passwordHelperDelete(QgsMessageBar *msgbar, int timeout=0, QWidget *parent=nullptr)
Remove master password from wallet.