File indexing completed on 2024-05-12 17:19:13
0001 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0002 // SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org> 0003 0004 #include "auth.h" 0005 0006 #include <QDBusContext> 0007 #include <QDBusMessage> 0008 0009 #include <polkitqt1-agent-session.h> 0010 #include <polkitqt1-authority.h> 0011 0012 bool isAuthorized(QDBusContext *context) 0013 { 0014 const auto action = QStringLiteral("org.kde.kio.admin.commands"); 0015 0016 auto authority = PolkitQt1::Authority::instance(); 0017 PolkitQt1::Authority::Result result = 0018 authority->checkAuthorizationSync(action, PolkitQt1::SystemBusNameSubject(context->message().service()), PolkitQt1::Authority::AllowUserInteraction); 0019 0020 if (authority->hasError()) { 0021 authority->clearError(); 0022 return false; 0023 } 0024 0025 switch (result) { 0026 case PolkitQt1::Authority::Yes: 0027 return true; 0028 case PolkitQt1::Authority::Unknown: 0029 case PolkitQt1::Authority::No: 0030 case PolkitQt1::Authority::Challenge: 0031 break; 0032 } 0033 return false; 0034 }