玉兔远程控制 0.1.0-alpha.2
载入中...
搜索中...
未找到
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}
操作参数接口。仅在插件内有效。
CParameterPlugin * GetGlobalParameters()
Get CParameterPlugin
用户名与验证方式。此类仅在插件内有效。它的界面是 CParameterUserUI
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)
在设置参数时,如果有修改,则调用。