QGIS API Documentation 3.37.0-Master (fa0c88a90b0)
qgscredentials.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscredentials.h - interface for requesting credentials
3 ----------------------
4 begin : February 2010
5 copyright : (C) 2010 by Juergen E. Fischer
6 email : jef at norbit dot de
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16
17#ifndef QGSCREDENTIALS_H
18#define QGSCREDENTIALS_H
19
20#include <QMap>
21#include <QMutex>
22#include <QObject>
23#include <QPair>
24#include <QString>
25
26#include "qgis_core.h"
27#include "qgis_sip.h"
28
45class CORE_EXPORT QgsCredentials
46{
47 public:
48
52 virtual ~QgsCredentials() = default;
53
69 bool get( const QString &realm, QString &username SIP_INOUT, QString &password SIP_INOUT, const QString &message = QString(), bool requestCredentials = true );
70
80 void put( const QString &realm, const QString &username, const QString &password );
81
82 bool getMasterPassword( QString &password SIP_INOUT, bool stored = false );
83
85 static QgsCredentials *instance();
86
92 void lock();
93
97 void unlock();
98
102 QMutex *mutex() { return &mAuthMutex; }
103
104 protected:
105
109 QgsCredentials() = default;
110
112 virtual bool request( const QString &realm, QString &username SIP_INOUT, QString &password SIP_INOUT, const QString &message = QString() ) = 0;
113
115 virtual bool requestMasterPassword( QString &password SIP_INOUT, bool stored = false ) = 0;
116
118 void setInstance( QgsCredentials *instance );
119
120 private:
121 Q_DISABLE_COPY( QgsCredentials )
122
123#ifdef SIP_RUN
125#endif
126
128 QMap< QString, QPair<QString, QString> > mCredentialCache;
129
131 static QgsCredentials *sInstance;
132
134 QMutex mAuthMutex;
135
137 QMutex mCacheMutex;
138};
139
140
147class CORE_EXPORT QgsCredentialsNone : public QObject, public QgsCredentials
148{
149 Q_OBJECT
150
151 public:
153
154 signals:
156 void destroyed();
157
158 protected:
159 bool request( const QString &realm, QString &username SIP_INOUT, QString &password SIP_INOUT, const QString &message = QString() ) override;
160 bool requestMasterPassword( QString &password SIP_INOUT, bool stored = false ) override;
161};
162
163
172class CORE_EXPORT QgsCredentialsConsole : public QObject, public QgsCredentials
173{
174 Q_OBJECT
175
176 public:
178
179 signals:
181 void destroyed();
182
183 protected:
184 bool request( const QString &realm, QString &username SIP_INOUT, QString &password SIP_INOUT, const QString &message = QString() ) override;
185 bool requestMasterPassword( QString &password SIP_INOUT, bool stored = false ) override;
186};
187
188#endif
Implementation of credentials interface for the console.
void destroyed()
signals that object will be destroyed and shouldn't be used anymore
Default implementation of credentials interface.
void destroyed()
signals that object will be destroyed and shouldn't be used anymore
Interface for requesting credentials in QGIS in GUI independent way.
QMutex * mutex()
Returns pointer to mutex.
virtual bool requestMasterPassword(QString &password, bool stored=false)=0
request a master password
QgsCredentials()=default
Constructor for QgsCredentials.
virtual ~QgsCredentials()=default
Destructor.
virtual bool request(const QString &realm, QString &username, QString &password, const QString &message=QString())=0
request a password
#define SIP_INOUT
Definition: qgis_sip.h:71