18 #include "ui_qgsauthconfigeditor.h" 21 #include <QMessageBox> 22 #include <QSqlTableModel> 32 , mRelayMessages( relayMessages )
37 mAuthNotifyLayout =
new QVBoxLayout;
38 this->setLayout( mAuthNotifyLayout );
40 mAuthNotifyLayout->addWidget( mAuthNotify );
45 connect( btnAddConfig, &QToolButton::clicked,
this, &QgsAuthConfigEditor::btnAddConfig_clicked );
46 connect( btnEditConfig, &QToolButton::clicked,
this, &QgsAuthConfigEditor::btnEditConfig_clicked );
47 connect( btnRemoveConfig, &QToolButton::clicked,
this, &QgsAuthConfigEditor::btnRemoveConfig_clicked );
53 mConfigModel->select();
55 mConfigModel->setHeaderData( 0, Qt::Horizontal, tr(
"ID" ) );
56 mConfigModel->setHeaderData( 1, Qt::Horizontal, tr(
"Name" ) );
57 mConfigModel->setHeaderData( 2, Qt::Horizontal, tr(
"URI" ) );
58 mConfigModel->setHeaderData( 3, Qt::Horizontal, tr(
"Type" ) );
59 mConfigModel->setHeaderData( 4, Qt::Horizontal, tr(
"Version" ) );
60 mConfigModel->setHeaderData( 5, Qt::Horizontal, tr(
"Config" ) );
62 tableViewConfigs->setModel( mConfigModel );
63 tableViewConfigs->resizeColumnsToContents();
68 tableViewConfigs->hideColumn( 4 );
69 tableViewConfigs->hideColumn( 5 );
72 tableViewConfigs->sortByColumn( 1, Qt::AscendingOrder );
73 tableViewConfigs->setSortingEnabled(
true );
75 connect( tableViewConfigs->selectionModel(), &QItemSelectionModel::selectionChanged,
76 this, &QgsAuthConfigEditor::selectionChanged );
78 connect( tableViewConfigs, &QAbstractItemView::doubleClicked,
79 this, &QgsAuthConfigEditor::btnEditConfig_clicked );
84 this, &QgsAuthConfigEditor::authMessageOut );
88 this, &QgsAuthConfigEditor::refreshTableView );
93 mActionSetMasterPassword =
new QAction( QStringLiteral(
"Input master password" ),
this );
94 mActionClearCachedMasterPassword =
new QAction( QStringLiteral(
"Clear cached master password" ),
this );
95 mActionResetMasterPassword =
new QAction( QStringLiteral(
"Reset master password" ),
this );
96 mActionClearCachedAuthConfigs =
new QAction( QStringLiteral(
"Clear cached authentication configurations" ),
this );
97 mActionRemoveAuthConfigs =
new QAction( QStringLiteral(
"Remove all authentication configurations" ),
this );
98 mActionEraseAuthDatabase =
new QAction( QStringLiteral(
"Erase authentication database" ),
this );
100 connect( mActionSetMasterPassword, &QAction::triggered,
this, &QgsAuthConfigEditor::setMasterPassword );
101 connect( mActionClearCachedMasterPassword, &QAction::triggered,
this, &QgsAuthConfigEditor::clearCachedMasterPassword );
102 connect( mActionResetMasterPassword, &QAction::triggered,
this, &QgsAuthConfigEditor::resetMasterPassword );
103 connect( mActionClearCachedAuthConfigs, &QAction::triggered,
this, &QgsAuthConfigEditor::clearCachedAuthenticationConfigs );
104 connect( mActionRemoveAuthConfigs, &QAction::triggered,
this, &QgsAuthConfigEditor::removeAuthenticationConfigs );
105 connect( mActionEraseAuthDatabase, &QAction::triggered,
this, &QgsAuthConfigEditor::eraseAuthenticationDatabase );
107 mAuthUtilitiesMenu =
new QMenu(
this );
108 mAuthUtilitiesMenu->addAction( mActionSetMasterPassword );
109 mAuthUtilitiesMenu->addAction( mActionClearCachedMasterPassword );
110 mAuthUtilitiesMenu->addAction( mActionResetMasterPassword );
111 mAuthUtilitiesMenu->addSeparator();
112 mAuthUtilitiesMenu->addAction( mActionClearCachedAuthConfigs );
113 mAuthUtilitiesMenu->addAction( mActionRemoveAuthConfigs );
114 mAuthUtilitiesMenu->addSeparator();
115 mAuthUtilitiesMenu->addAction( mActionEraseAuthDatabase );
117 btnAuthUtilities->setMenu( mAuthUtilitiesMenu );
118 lblAuthConfigDb->setVisible(
false );
122 void QgsAuthConfigEditor::setMasterPassword()
127 void QgsAuthConfigEditor::clearCachedMasterPassword()
132 void QgsAuthConfigEditor::resetMasterPassword()
137 void QgsAuthConfigEditor::clearCachedAuthenticationConfigs()
142 void QgsAuthConfigEditor::removeAuthenticationConfigs()
147 void QgsAuthConfigEditor::eraseAuthenticationDatabase()
154 int levelint =
static_cast<int>( level );
162 lblAuthConfigDb->setVisible( visible );
170 btnAuthUtilities->setVisible( show );
180 if ( relay == mRelayMessages )
185 if ( mRelayMessages )
188 this, &QgsAuthConfigEditor::authMessageOut );
189 mRelayMessages = relay;
194 this, &QgsAuthConfigEditor::authMessageOut );
195 mRelayMessages = relay;
198 void QgsAuthConfigEditor::refreshTableView()
200 mConfigModel->select();
201 tableViewConfigs->reset();
204 void QgsAuthConfigEditor::selectionChanged(
const QItemSelection &selected,
const QItemSelection &deselected )
206 Q_UNUSED( selected );
207 Q_UNUSED( deselected );
211 void QgsAuthConfigEditor::checkSelection()
213 bool hasselection = tableViewConfigs->selectionModel()->selection().length() > 0;
214 btnEditConfig->setEnabled( hasselection );
215 btnRemoveConfig->setEnabled( hasselection );
218 void QgsAuthConfigEditor::btnAddConfig_clicked()
224 ace->setWindowModality( Qt::WindowModal );
227 mConfigModel->select();
232 void QgsAuthConfigEditor::btnEditConfig_clicked()
234 QString authcfg = selectedConfigId();
236 if ( authcfg.isEmpty() )
243 ace->setWindowModality( Qt::WindowModal );
246 mConfigModel->select();
251 void QgsAuthConfigEditor::btnRemoveConfig_clicked()
253 QModelIndexList selection = tableViewConfigs->selectionModel()->selectedRows( 0 );
255 if ( selection.empty() )
258 QModelIndex indx = selection.at( 0 );
259 QString name = indx.sibling( indx.row(), 1 ).data().toString();
261 if ( QMessageBox::warning(
this, tr(
"Remove Configuration" ),
262 tr(
"Are you sure you want to remove '%1'?\n\n" 263 "Operation can NOT be undone!" ).arg( name ),
264 QMessageBox::Ok | QMessageBox::Cancel,
265 QMessageBox::Cancel ) == QMessageBox::Ok )
267 mConfigModel->removeRow( indx.row() );
276 int QgsAuthConfigEditor::messageTimeout()
279 return settings.
value( QStringLiteral(
"qgis/messageTimeout" ), 5 ).toInt();
282 QString QgsAuthConfigEditor::selectedConfigId()
284 QModelIndexList selection = tableViewConfigs->selectionModel()->selectedRows( 0 );
286 if ( selection.empty() )
289 QModelIndex indx = selection.at( 0 );
290 return indx.sibling( indx.row(), 0 ).data().toString();
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.
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.
MessageLevel
Message log level (mirrors that of QgsMessageLog, so it can also output there)
static void clearCachedAuthenticationConfigs(QgsMessageBar *msgbar, int timeout=0)
Clear all cached authentication configs for session.
QgsAuthConfigEditor(QWidget *parent=nullptr, bool showUtilities=true, bool relayMessages=true)
Widget for editing authentication configurations directly in database.
void authDatabaseChanged()
Emitted when the authentication db is significantly changed, e.g. large record removal, erased, etc.
void pushMessage(const QString &text, Qgis::MessageLevel level=Qgis::Info, int duration=5)
convenience method for pushing a message to the bar
void setShowUtilitiesButton(bool show=true)
Sets whether to show the widget's utilities button, e.g. when embedding.
void toggleTitleVisibility(bool visible)
Hide the widget's title, e.g. when embedding.
static QgsAuthManager * authManager()
Returns the application's authentication manager instance.
bool setMasterPassword(bool verify=false)
Main call to initially set or continually check master password is set.
Widget for editing an authentication configuration.
void setRelayMessages(bool relay=true)
Sets whether to relay auth manager messages to internal message bar, e.g. when embedding.