signon  8.58
signonidentityinfo.h
Go to the documentation of this file.
1 /*
2  * This file is part of signon
3  *
4  * Copyright (C) 2009-2010 Nokia Corporation.
5  *
6  * Contact: Aurel Popirtac <ext-aurel.popirtac@nokia.com>
7  * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Lesser General Public License
11  * version 2.1 as published by the Free Software Foundation.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  */
23 #ifndef SIGNONIDENTITYINFO_H
24 #define SIGNONIDENTITYINFO_H
25 
26 #include <QStringList>
27 #include <QVariantMap>
28 
29 #include "signond/signoncommon.h"
30 
31 namespace SignonDaemonNS {
32 
33 typedef QString MethodName;
34 typedef QStringList MechanismsList;
36 
42 struct SignonIdentityInfo: protected QVariantMap
43 {
45  SignonIdentityInfo(const QVariantMap &info);
46 
47  const QVariantMap toMap() const;
48 
49  void update(const SignonIdentityInfo &info);
50 
51  void setNew() { setId(SIGNOND_NEW_IDENTITY); }
52  bool isNew() const { return id() == SIGNOND_NEW_IDENTITY; }
53  void setId(quint32 id) { insert(SIGNOND_IDENTITY_INFO_ID, id); }
54  quint32 id() const { return value(SIGNOND_IDENTITY_INFO_ID, 0).toUInt(); }
55 
56  void setUserName(const QString &userName) {
57  insert(SIGNOND_IDENTITY_INFO_USERNAME, userName);
58  }
59 
60  QString userName() const {
61  return value(SIGNOND_IDENTITY_INFO_USERNAME).toString();
62  }
63 
64  void setUserNameSecret(bool secret) {
65  insert(SIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET, secret);
66  }
67 
68  bool isUserNameSecret() const {
69  return value(SIGNOND_IDENTITY_INFO_USERNAME_IS_SECRET).toBool();
70  }
71 
72  void setPassword(const QString &password) {
73  insert(SIGNOND_IDENTITY_INFO_SECRET, password);
74  }
75 
76  QString password() const {
77  return value(SIGNOND_IDENTITY_INFO_SECRET).toString();
78  }
79 
80  void removeSecrets() {
81  remove(SIGNOND_IDENTITY_INFO_SECRET);
82  if (isUserNameSecret())
83  remove(SIGNOND_IDENTITY_INFO_USERNAME);
84  }
85 
86  bool hasSecrets() const {
87  return contains(SIGNOND_IDENTITY_INFO_SECRET) ||
88  (isUserNameSecret() && contains(SIGNOND_IDENTITY_INFO_USERNAME));
89  }
90 
92  insert(SIGNOND_IDENTITY_INFO_STORESECRET, storePassword);
93  }
94 
95  bool storePassword() const {
96  return value(SIGNOND_IDENTITY_INFO_STORESECRET).toBool();
97  }
98 
99  void setCaption(const QString &caption) {
100  insert(SIGNOND_IDENTITY_INFO_CAPTION, caption);
101  }
102 
103  QString caption() const {
104  return value(SIGNOND_IDENTITY_INFO_CAPTION).toString();
105  }
106 
107  void setRealms(const QStringList &realms) {
108  insert(SIGNOND_IDENTITY_INFO_REALMS, realms);
109  }
110 
111  QStringList realms() const {
112  return value(SIGNOND_IDENTITY_INFO_REALMS).toStringList();
113  }
114 
115  void setMethods(const MethodMap &methods) {
116  insert(SIGNOND_IDENTITY_INFO_AUTHMETHODS, QVariant::fromValue(methods));
117  }
118 
119  MethodMap methods() const {
120  return value(SIGNOND_IDENTITY_INFO_AUTHMETHODS).value<MethodMap>();
121  }
122 
123  void setAccessControlList(const QStringList &accessControlList) {
124  insert(SIGNOND_IDENTITY_INFO_ACL, accessControlList);
125  }
126 
127  QStringList accessControlList() const {
128  return value(SIGNOND_IDENTITY_INFO_ACL).toStringList();
129  }
130 
131  void setValidated(bool validated) {
132  insert(SIGNOND_IDENTITY_INFO_VALIDATED, validated);
133  }
134 
135  bool validated() const {
136  return value(SIGNOND_IDENTITY_INFO_VALIDATED).toBool();
137  }
138 
139  void setType(int type) {
140  insert(SIGNOND_IDENTITY_INFO_TYPE, type);
141  }
142 
143  int type() const {
144  return value(SIGNOND_IDENTITY_INFO_TYPE).toInt();
145  }
146 
147  void setOwnerList(const QStringList &owners) {
148  insert(SIGNOND_IDENTITY_INFO_OWNER, owners);
149  }
150 
151  QStringList ownerList() const {
152  return value(SIGNOND_IDENTITY_INFO_OWNER).toStringList();
153  }
154 
155  void setRefCount(int refCount) {
156  insert(SIGNOND_IDENTITY_INFO_REFCOUNT, refCount);
157  }
158 
159  int refCount() const {
160  return value(SIGNOND_IDENTITY_INFO_REFCOUNT).toInt();
161  }
162 
163  bool checkMethodAndMechanism(const QString &method,
164  const QString &mechanism,
165  QString &allowedMechanism);
166 }; //struct SignonIdentityInfo
167 
168 } //namespace SignonDaemonNS
169 
170 Q_DECLARE_METATYPE(SignonDaemonNS::MethodMap)
171 
172 #endif // SIGNONIDENTITYINFO_H
QStringList MechanismsList
void setRealms(const QStringList &realms)
void setStorePassword(bool storePassword)
void setMethods(const MethodMap &methods)
void setCaption(const QString &caption)
bool checkMethodAndMechanism(const QString &method, const QString &mechanism, QString &allowedMechanism)
void setPassword(const QString &password)
QMap< MethodName, MechanismsList > MethodMap
void setAccessControlList(const QStringList &accessControlList)
Daemon side representation of identity information.
void setUserName(const QString &userName)
const QVariantMap toMap() const
void update(const SignonIdentityInfo &info)
void setOwnerList(const QStringList &owners)