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)
110 values.insert(SIGNOND_IDENTITY_INFO_ID, m_id);
111 values.insert(SIGNOND_IDENTITY_INFO_USERNAME, m_userName);
112 values.insert(SIGNOND_IDENTITY_INFO_SECRET, m_password);
113 values.insert(SIGNOND_IDENTITY_INFO_CAPTION, m_caption);
114 values.insert(SIGNOND_IDENTITY_INFO_REALMS, m_realms);
115 values.insert(SIGNOND_IDENTITY_INFO_AUTHMETHODS,
116 QVariant::fromValue(m_methods));
117 values.insert(SIGNOND_IDENTITY_INFO_ACL, m_accessControlList);
118 values.insert(SIGNOND_IDENTITY_INFO_OWNER, m_ownerList);
119 values.insert(SIGNOND_IDENTITY_INFO_TYPE, m_type);
120 values.insert(SIGNOND_IDENTITY_INFO_REFCOUNT, m_refCount);
121 values.insert(SIGNOND_IDENTITY_INFO_VALIDATED, m_validated);
122 values.insert(SIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET,
134 me.m_accessControlList.sort();
135 you.m_accessControlList.sort();
136 QMapIterator<QString, QStringList> it(me.m_methods);
137 while (it.hasNext()) {
139 QStringList list1 = it.value();
140 QStringList list2 = you.m_methods.value(it.key());
143 if (list1 != list2)
return false;
146 return (m_id == other.m_id)
147 && (m_userName == other.m_userName)
148 && (m_password == other.m_password)
149 && (m_caption == other.m_caption)
150 && (me.m_realms ==you.m_realms)
151 && (me.m_accessControlList == you.m_accessControlList)
152 && (m_type == other.m_type)
153 && (m_validated == other.m_validated);
157 const QString &mechanism,
158 QString &allowedMechanism)
161 if (m_methods.isEmpty())
164 if (!m_methods.contains(method))
172 if (mechs.contains(mechanism)) {
173 allowedMechanism = mechanism;
182 QStringList mechanisms =
183 mechanism.split(QLatin1Char(
' '), QString::SkipEmptyParts);
187 if (mechanisms.size() <= 1)
190 QStringList allowedMechanisms;
191 foreach (
const QString &mech, mechanisms) {
192 if (mechs.contains(mech))
193 allowedMechanisms.append(mech);
195 if (allowedMechanisms.isEmpty())
198 allowedMechanism = allowedMechanisms.join(QLatin1String(
" "));
207 m_userName = other.m_userName;
208 m_password = other.m_password ;
209 m_storePassword = other.m_storePassword;
210 m_caption = other.m_caption;
211 m_realms = other.m_realms;
212 m_accessControlList = other.m_accessControlList;
213 m_ownerList = other.m_ownerList;
214 m_type = other.m_type;
215 m_refCount = other.m_refCount;
216 m_validated = other.m_validated;
217 m_methods = other.m_methods;
QStringList MechanismsList
bool checkMethodAndMechanism(const QString &method, const QString &mechanism, QString &allowedMechanism)
Daemon side representation of identity information.
SignonIdentityInfo & operator=(const SignonIdentityInfo &other)
bool operator==(const SignonIdentityInfo &other) const
const QVariantMap toMap() const