Rabbit Remote Control 0.1.0-alpha.2
Loading...
Searching...
No Matches
ParameterUser.cpp
1// Author: Kang Lin <kl222@126.com>
2#include "ParameterUser.h"
3#include "RabbitCommonTools.h"
4#include <QLoggingCategory>
5
6static Q_LOGGING_CATEGORY(log, "Client.Parameter.User")
7
8CParameterUser::CParameterUser(CParameterOperate *parent, const QString &szPrefix)
9 : CParameterOperate(parent, szPrefix)
10 , m_Type(QList<TYPE>() << TYPE::UserPassword)
11 , m_UsedType(TYPE::UserPassword)
12 , m_bSavePassword(false)
13 , m_bUseSystemFile(true)
14 , m_bSavePassphrase(false)
15{
16 m_TypeName = {{TYPE::None, tr("None")},
17 {TYPE::OnlyPassword, tr("Password")},
18 {TYPE::UserPassword, tr("Username and password")},
19 {TYPE::PublicKey, tr("Public key")},
20 {TYPE::OnlyPasswordX509None, tr("Password with X509 none")},
21 {TYPE::OnlyPasswordX509, tr("Password with X509")},
22 {TYPE::UserPasswordX509None, tr("Username and password with X509 none")},
23 {TYPE::UserPasswordX509, tr("Username and password with X509")}
24 };
25}
26
27int CParameterUser::OnLoad(QSettings &set)
28{
29 set.beginGroup("User");
30 SetUser(set.value("Name", GetUser()).toString());
31
32 set.beginGroup("Authentication");
33 QStringList type;
34 foreach(auto t, GetType()) {
35 type.push_back(QString::number((int)t));
36 }
37 QStringList vType;
38 vType = set.value("Type", type).toStringList();
39 QList<TYPE> lstType;
40 foreach(auto s, vType)
41 {
42 lstType.push_back((TYPE)s.toInt());
43 }
44 SetType(lstType);
45 SetUsedType((TYPE)set.value("Type/Used", (int)GetUsedType()).toInt());
46
47 SetSavePassword(set.value("SavePassword", GetSavePassword()).toBool());
48 if(GetSavePassword())
49 {
50 QString szPassword;
51 if(!LoadPassword(tr("Password"), "Password", szPassword, set))
52 SetPassword(szPassword);
53 }
54
55 set.beginGroup("PublicKey");
56 set.beginGroup("File");
57 SetUseSystemFile(set.value("UseSystemFile", GetUseSystemFile()).toBool());
58 SetPublicKeyFile(set.value("PublicKey",
59 GetPublicKeyFile()).toString());
60 SetPrivateKeyFile(set.value("PrivateKey",
61 GetPrivateKeyFile()).toString());
62 SetSavePassphrase(set.value("SavePassphrase", GetSavePassphrase()).toBool());
63 if(GetSavePassphrase()) {
64 QString szPassword;
65 if(!LoadPassword(tr("Passphrase"), "Passphrase", szPassword, set))
66 SetPassphrase(szPassword);
67 }
68
69 SetCAFile(set.value("CA", GetCAFile()).toString());
70 SetCRLFile(set.value("CRL", GetCRLFile()).toString());
71
72 set.endGroup();
73
74 set.endGroup();
75 set.endGroup();
76 set.endGroup();
77 return 0;
78}
79
80int CParameterUser::OnSave(QSettings &set)
81{
82 set.beginGroup("User");
83 set.setValue("Name", GetUser());
84
85 set.beginGroup("Authentication");
86 QStringList type;
87 foreach(auto t, GetType()) {
88 type.push_back(QString::number((int)t));
89 }
90 set.setValue("Type", type);
91 set.setValue("Type/Used", (int)GetUsedType());
92
93 set.setValue("SavePassword", GetSavePassword());
94 SavePassword("Password", GetPassword(), set, GetSavePassword());
95
96 set.beginGroup("PublicKey");
97 set.beginGroup("File");
98 set.setValue("UseSystemFile", GetUseSystemFile());
99 set.setValue("PublicKey", GetPublicKeyFile());
100 set.setValue("PrivateKey", GetPrivateKeyFile());
101 set.setValue("SavePassphrase", GetSavePassphrase());
102 SavePassword("Passphrase", GetPassphrase(), set, GetSavePassphrase());
103
104 set.setValue("CA", GetCAFile());
105 set.setValue("CRL", GetCRLFile());
106
107 set.endGroup();
108
109 set.endGroup();
110 set.endGroup();
111 set.endGroup();
112 return 0;
113}
114
115QList<CParameterUser::TYPE> CParameterUser::GetType() const
116{
117 return m_Type;
118}
119
120int CParameterUser::SetType(QList<TYPE> type)
121{
122 if(m_Type == type)
123 return 0;
124 m_Type = type;
125 SetModified(true);
126 return 0;
127}
128
129CParameterUser::TYPE CParameterUser::GetUsedType() const
130{
131 return m_UsedType;
132}
133
134int CParameterUser::SetUsedType(TYPE type)
135{
136 if(m_UsedType == type)
137 return 0;
138 m_UsedType = type;
139 SetModified(true);
140 return 0;
141}
142
143const QString CParameterUser::GetUser() const
144{
145 return m_szUser;
146}
147
148void CParameterUser::SetUser(const QString &szUser)
149{
150 if (m_szUser == szUser)
151 return;
152 m_szUser = szUser;
153 SetModified(true);
154}
155
156const QString CParameterUser::GetPassword() const
157{
158 return m_szPassword;
159}
160
161void CParameterUser::SetPassword(const QString &szPassword)
162{
163 if(m_szPassword == szPassword)
164 return;
165 m_szPassword = szPassword;
166 SetModified(true);
167}
168
169const bool CParameterUser::GetSavePassword() const
170{
171 return m_bSavePassword;
172}
173
175{
176 if (m_bSavePassword == save)
177 return;
178 m_bSavePassword = save;
179 SetModified(true);
180}
181
184{
185 if(!GetGlobalParameters()) {
186 QString szErr = "The CParameterClient is null";
187 qCritical(log) << szErr;
188 Q_ASSERT_X(false, "CParameterUser", szErr.toStdString().c_str());
189 return;
190 }
191
193 {
194 if(GetGlobalParameters()->GetEnableSystemUserToUser())
195 SetUser(RabbitCommon::CTools::GetCurrentUser());
196 SetSavePassword(GetGlobalParameters()->GetSavePassword());
197 SetSavePassphrase(GetGlobalParameters()->GetSavePassword());
198 }
199
200 return;
201}
203
206{
207 return m_bUseSystemFile;
208}
209
210int CParameterUser::SetUseSystemFile(bool use)
211{
212 if(m_bUseSystemFile == use)
213 return 0;
214 m_bUseSystemFile = use;
215 SetModified(true);
216 return 0;
217}
218
219QString CParameterUser::GetPassphrase() const
220{
221 return m_szPassphrase;
222}
223
224int CParameterUser::SetPassphrase(const QString passphrase)
225{
226 if(m_szPassphrase == passphrase)
227 return 0;
228 m_szPassphrase = passphrase;
229 SetModified(true);
230 return 0;
231}
232
233bool CParameterUser::GetSavePassphrase() const
234{
235 return m_bSavePassphrase;
236}
237
238int CParameterUser::SetSavePassphrase(bool bSave)
239{
240 if(m_bSavePassphrase == bSave)
241 return 0;
242 m_bSavePassphrase = bSave;
243 SetModified(true);
244 return 0;
245}
246
247QString CParameterUser::GetPublicKeyFile() const
248{
249 return m_szPublicKeyFile;
250}
251
252int CParameterUser::SetPublicKeyFile(const QString szFile)
253{
254 if(m_szPublicKeyFile == szFile)
255 return 0;
256 m_szPublicKeyFile = szFile;
257 SetModified(true);
258 return 0;
259}
260
261QString CParameterUser::GetPrivateKeyFile() const
262{
263 return m_szPrivateKeyFile;
264}
265
266int CParameterUser::SetPrivateKeyFile(const QString szFile)
267{
268 if(m_szPrivateKeyFile == szFile)
269 return 0;
270 m_szPrivateKeyFile = szFile;
271 SetModified(true);
272 return 0;
273}
274
275QString CParameterUser::GetCAFile() const
276{
277 return m_szCAFile;
278}
279
280int CParameterUser::SetCAFile(const QString &ca)
281{
282 if(m_szCAFile == ca)
283 return 0;
284 m_szCAFile = ca;
285 SetModified(true);
286 return 0;
287}
288
289QString CParameterUser::GetCRLFile() const
290{
291 return m_szCRLFile;
292}
293
294int CParameterUser::SetCRLFile(const QString &crl)
295{
296 if(m_szCRLFile == crl)
297 return 0;
298 m_szCRLFile = crl;
299 SetModified(true);
300 return 0;
301}
302
303QString CParameterUser::ConvertTypeToName(TYPE t)
304{
305 return m_TypeName[t];
306}
307
308int CParameterUser::SetTypeName(TYPE t, const QString& szName)
309{
310 m_TypeName[t] = szName;
311 return 0;
312}
Operational parameter interface.
CParameterPlugin * GetGlobalParameters()
Get CParameterPlugin.
It contains user and password It only valid in plugin.
virtual void slotSetGlobalParameters() override
Initialize this parameter based on the global parameter.
void SetSavePassword(bool save)
Set save password.
bool GetUseSystemFile() const
[Initialize parameter after set CParameterPlugin]
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.