26 #include <QDataStream>
29 namespace SignonDaemonNS {
33 m_userName(QString()),
34 m_password(QString()),
35 m_storePassword(false),
37 m_methods(QMap<QString, QStringList>()),
38 m_realms(QStringList()),
39 m_accessControlList(QStringList()),
40 m_ownerList(QStringList()),
44 m_isUserNameSecret(false)
50 m_userName(QString()),
51 m_password(QString()),
52 m_storePassword(false),
54 m_methods(QMap<QString, QStringList>()),
55 m_realms(QStringList()),
56 m_accessControlList(QStringList()),
57 m_ownerList(QStringList()),
61 m_isUserNameSecret(false)
63 m_id = info.value(SIGNOND_IDENTITY_INFO_ID).toInt();
64 m_userName = info.value(SIGNOND_IDENTITY_INFO_USERNAME).toString();
65 m_password = info.value(SIGNOND_IDENTITY_INFO_SECRET).toString();
66 m_storePassword = info.value(SIGNOND_IDENTITY_INFO_STORESECRET).toBool();
67 m_caption = info.value(SIGNOND_IDENTITY_INFO_CAPTION).toString();
69 info.value(SIGNOND_IDENTITY_INFO_AUTHMETHODS).value<
MethodMap>();
71 m_realms = info.value(SIGNOND_IDENTITY_INFO_REALMS).toStringList();
72 m_accessControlList = info.value(SIGNOND_IDENTITY_INFO_ACL).toStringList();
73 m_ownerList = info.value(SIGNOND_IDENTITY_INFO_OWNER).toStringList();
74 m_type = info.value(SIGNOND_IDENTITY_INFO_TYPE).toInt();
75 m_refCount = info.value(SIGNOND_IDENTITY_INFO_REFCOUNT).toInt();
76 m_validated = info.value(SIGNOND_IDENTITY_INFO_VALIDATED).toBool();
80 const QString &userName,
81 const QString &password,
82 const bool storePassword,
83 const QString &caption,
85 const QStringList &realms,
86 const QStringList &accessControlList,
87 const QStringList &ownerList,
94 m_storePassword(storePassword),
98 m_accessControlList(accessControlList),
99 m_ownerList(ownerList),
101 m_refCount(refCount),
102 m_validated(validated),
103 m_isUserNameSecret(false)
109 QList<QVariant> list;
115 << QVariant::fromValue(m_methods)
116 << m_accessControlList
120 << m_isUserNameSecret;
128 values.insert(SIGNOND_IDENTITY_INFO_ID, m_id);
129 values.insert(SIGNOND_IDENTITY_INFO_USERNAME, m_userName);
130 values.insert(SIGNOND_IDENTITY_INFO_SECRET, m_password);
131 values.insert(SIGNOND_IDENTITY_INFO_CAPTION, m_caption);
132 values.insert(SIGNOND_IDENTITY_INFO_REALMS, m_realms);
133 values.insert(SIGNOND_IDENTITY_INFO_AUTHMETHODS,
134 QVariant::fromValue(m_methods));
135 values.insert(SIGNOND_IDENTITY_INFO_ACL, m_accessControlList);
136 values.insert(SIGNOND_IDENTITY_INFO_TYPE, m_type);
137 values.insert(SIGNOND_IDENTITY_INFO_REFCOUNT, m_refCount);
138 values.insert(SIGNOND_IDENTITY_INFO_VALIDATED, m_validated);
139 values.insert(SIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET,
151 me.m_accessControlList.sort();
152 you.m_accessControlList.sort();
153 QMapIterator<QString, QStringList> it(me.m_methods);
154 while (it.hasNext()) {
156 QStringList list1 = it.value();
157 QStringList list2 = you.m_methods.value(it.key());
160 if (list1 != list2)
return false;
163 return (m_id == other.m_id)
164 && (m_userName == other.m_userName)
165 && (m_password == other.m_password)
166 && (m_caption == other.m_caption)
167 && (me.m_realms ==you.m_realms)
168 && (me.m_accessControlList == you.m_accessControlList)
169 && (m_type == other.m_type)
170 && (m_validated == other.m_validated);
174 const QString &mechanism,
175 QString &allowedMechanism)
178 if (m_methods.isEmpty())
181 if (!m_methods.contains(method))
189 if (mechs.contains(mechanism)) {
190 allowedMechanism = mechanism;
199 QStringList mechanisms =
200 mechanism.split(QLatin1Char(
' '), QString::SkipEmptyParts);
204 if (mechanisms.size() <= 1)
207 QStringList allowedMechanisms;
208 foreach (
const QString &mech, mechanisms) {
209 if (mechs.contains(mech))
210 allowedMechanisms.append(mech);
212 if (allowedMechanisms.isEmpty())
215 allowedMechanism = allowedMechanisms.join(QLatin1String(
" "));
224 m_userName = other.m_userName;
225 m_password = other.m_password ;
226 m_storePassword = other.m_storePassword;
227 m_caption = other.m_caption;
228 m_realms = other.m_realms;
229 m_accessControlList = other.m_accessControlList;
230 m_ownerList = other.m_ownerList;
231 m_type = other.m_type;
232 m_refCount = other.m_refCount;
233 m_validated = other.m_validated;
234 m_methods = other.m_methods;