Warning, file /frameworks/kauth/autotests/TestBackend.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2012 Dario Freddi <drf@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "TestBackend.h" 0008 0009 #include <QDebug> 0010 0011 namespace KAuth 0012 { 0013 TestBackend::TestBackend() 0014 : AuthBackend() 0015 { 0016 qDebug() << "Test backend loaded"; 0017 setCapabilities(AuthorizeFromHelperCapability | CheckActionExistenceCapability); 0018 } 0019 0020 void TestBackend::setNewCapabilities(AuthBackend::Capabilities capabilities) 0021 { 0022 qDebug() << "Capabilities changing"; 0023 setCapabilities(capabilities); 0024 } 0025 0026 Action::AuthStatus TestBackend::authorizeAction(const QString &action) 0027 { 0028 if (action == QLatin1String("doomed.to.fail")) { 0029 return Action::DeniedStatus; 0030 } 0031 0032 return Action::AuthorizedStatus; 0033 } 0034 0035 void TestBackend::setupAction(const QString &action) 0036 { 0037 if (action == QLatin1String("doomed.to.fail")) { 0038 m_actionStatuses.insert(action, Action::DeniedStatus); 0039 } else if (action == QLatin1String("requires.auth") || action == QLatin1String("generates.error")) { 0040 m_actionStatuses.insert(action, Action::AuthRequiredStatus); 0041 } else if (action == QLatin1String("always.authorized")) { 0042 m_actionStatuses.insert(action, Action::AuthorizedStatus); 0043 } else if (action.startsWith(QLatin1String("org.kde.kf5auth.autotest"))) { 0044 m_actionStatuses.insert(action, Action::AuthRequiredStatus); 0045 } 0046 } 0047 0048 Action::AuthStatus TestBackend::actionStatus(const QString &action) 0049 { 0050 if (m_actionStatuses.contains(action)) { 0051 return m_actionStatuses.value(action); 0052 } 0053 0054 return Action::InvalidStatus; 0055 } 0056 0057 QByteArray TestBackend::callerID() const 0058 { 0059 return QByteArray("a random caller Id"); 0060 } 0061 0062 bool TestBackend::isCallerAuthorized(const QString &action, const QByteArray &callerId, const QVariantMap &details) 0063 { 0064 Q_UNUSED(details); 0065 0066 if (action == QLatin1String("doomed.to.fail")) { 0067 return false; 0068 } else if (action == QLatin1String("requires.auth")) { 0069 m_actionStatuses.insert(action, Action::AuthorizedStatus); 0070 Q_EMIT actionStatusChanged(action, Action::AuthorizedStatus); 0071 return true; 0072 } else if (action == QLatin1String("generates.error")) { 0073 m_actionStatuses.insert(action, Action::ErrorStatus); 0074 Q_EMIT actionStatusChanged(action, Action::ErrorStatus); 0075 return false; 0076 } else if (action == QLatin1String("always.authorized")) { 0077 return true; 0078 } else if (action.startsWith(QLatin1String("org.kde.kf5auth.autotest"))) { 0079 qDebug() << "Caller ID:" << callerId; 0080 if (callerId == callerID()) { 0081 m_actionStatuses.insert(action, Action::AuthorizedStatus); 0082 Q_EMIT actionStatusChanged(action, Action::AuthorizedStatus); 0083 return true; 0084 } else { 0085 m_actionStatuses.insert(action, Action::DeniedStatus); 0086 Q_EMIT actionStatusChanged(action, Action::DeniedStatus); 0087 } 0088 } 0089 0090 return false; 0091 } 0092 0093 bool TestBackend::actionExists(const QString &action) 0094 { 0095 qDebug() << "Checking if action " << action << "exists"; 0096 /* clang-format off */ 0097 if (action != QLatin1String("doomed.to.fail") 0098 && action != QLatin1String("requires.auth") 0099 && action != QLatin1String("generates.error") 0100 && action != QLatin1String("always.authorized") 0101 && action != QLatin1String("/safinvalid124%$&") 0102 && !action.startsWith(QLatin1String("org.kde.kf5auth.autotest"))) { /* clang-format on */ 0103 return false; 0104 } 0105 0106 return true; 0107 } 0108 0109 } // namespace Auth