31 namespace SignonDaemonNS {
33 SignonAuthSessionAdaptor::SignonAuthSessionAdaptor(SignonAuthSession *parent):
34 QDBusAbstractAdaptor(parent)
36 setAutoRelaySignals(
true);
39 SignonAuthSessionAdaptor::~SignonAuthSessionAdaptor()
43 void SignonAuthSessionAdaptor::errorReply(
const QString &name,
44 const QString &message)
46 const QDBusContext &context = *
static_cast<QDBusContext *
>(parent());
47 QDBusMessage errReply = context.message().createErrorReply(name, message);
48 context.connection().send(errReply);
53 const QStringList &wantedMechanisms)
57 QDBusContext &dbusContext = *
static_cast<QDBusContext *
>(parent());
60 TRACE() <<
"queryAvailableMechanisms called from peer that doesn't "
61 "own the AuthSession object\n";
63 QTextStream(&errMsg) << SIGNOND_PERMISSION_DENIED_ERR_STR
64 <<
" Authentication session owned by other "
66 errorReply(SIGNOND_PERMISSION_DENIED_ERR_NAME, errMsg);
74 const QString &mechanism)
78 QString allowedMechanism(mechanism);
80 if (parent()->
id() != SIGNOND_NEW_IDENTITY) {
90 QTextStream(&errMsg) << SIGNOND_METHOD_OR_MECHANISM_NOT_ALLOWED_ERR_STR
97 errorReply(SIGNOND_METHOD_OR_MECHANISM_NOT_ALLOWED_ERR_NAME,
102 BLAME() <<
"Null database handler object.";
106 QDBusContext &dbusContext = *
static_cast<QDBusContext *
>(parent());
109 TRACE() <<
"process called from peer that doesn't own the AuthSession "
112 QTextStream(&errMsg) << SIGNOND_PERMISSION_DENIED_ERR_STR
113 <<
" Authentication session owned by other "
115 errorReply(SIGNOND_PERMISSION_DENIED_ERR_NAME, errMsg);
116 return QVariantMap();
119 return parent()->
process(sessionDataVa, allowedMechanism);
126 QDBusContext &dbusContext = *
static_cast<QDBusContext *
>(parent());
128 TRACE() <<
"cancel called from peer that doesn't own the AuthSession "
140 QDBusContext &dbusContext = *
static_cast<QDBusContext *
>(parent());
143 TRACE() <<
"setId called from peer that doesn't own the AuthSession "
148 dbusContext.connection(),
149 dbusContext.message(),
151 TRACE() <<
"setId called with an identifier the peer is not allowed "
163 QDBusContext &dbusContext = *
static_cast<QDBusContext *
>(parent());
166 TRACE() <<
"objectUnref called from peer that doesn't own the "
167 "AuthSession object";
Q_NOREPLY void objectUnref()
Definition of the CredentialsDB object.
QVariantMap process(const QVariantMap &sessionDataVa, const QString &mechanism)
static AccessControlManagerHelper * instance()
bool checkMethodAndMechanism(const QString &method, const QString &mechanism, QString &allowedMechanism)
static CredentialsAccessManager * instance()
Returns CAM instance.
SignonIdentityInfo credentials(const quint32 id, bool queryPassword=true)
Q_NOREPLY void setId(quint32 id)
static pid_t pidOfPeer(const QDBusContext &peerContext)
Definition of the CredentialsAccessManager object.
QStringList queryAvailableMechanisms(const QStringList &wantedMechanisms)
Daemon side representation of identity information.
CredentialsDB * credentialsDB() const
Manages the credentials I/O.
Helper class for access control-related functionality.
QVariantMap process(const QVariantMap &sessionDataVa, const QString &mechanism)
QStringList queryAvailableMechanisms(const QStringList &wantedMechanisms)