28 #include <QDBusConnection>
29 #include <QDBusConnectionInterface>
36 using namespace SignonDaemonNS;
46 SignOn::AbstractAccessControlManager *acManager)
50 m_acManager = acManager;
52 BLAME() <<
"Creating a second instance of the CAM";
65 const QDBusMessage &peerMessage,
66 const quint32 identityId)
72 TRACE() <<
"NULL db pointer, secure storage might be unavailable,";
77 TRACE() << QString(QLatin1String(
"Access control list of identity: "
78 "%1: [%2].Tokens count: %3\t"))
80 .arg(acl.join(QLatin1String(
", ")))
94 const QDBusMessage &peerMessage,
95 const quint32 identityId)
99 TRACE() <<
"NULL db pointer, secure storage might be unavailable,";
102 QStringList ownerSecContexts = db->
ownerList(identityId);
107 if (ownerSecContexts.isEmpty())
117 static QString keychainWidgetAppId = m_acManager->keychainWidgetAppId();
118 QString peerAppId = m_acManager->appIdOfPeer(peerMessage);
119 return (peerAppId == keychainWidgetAppId);
124 TRACE() << m_acManager->appIdOfPeer(peerMessage);
125 return m_acManager->appIdOfPeer(peerMessage);
130 const QStringList secContexts)
132 foreach(QString securityContext, secContexts)
134 TRACE() << securityContext;
135 if (m_acManager->isPeerAllowedToAccess(peerMessage, securityContext))
139 BLAME() <<
"given peer does not have needed permissions";
145 const QDBusMessage &peerMessage,
146 const QString securityContext)
148 TRACE() << securityContext;
149 return m_acManager->isPeerAllowedToAccess(peerMessage, securityContext);
154 QString service = peerContext.message().service();
155 return peerContext.connection().interface()->servicePid(service).value();