aboutsummaryrefslogtreecommitdiff
path: root/autotests/kconfigtest.cpp
diff options
context:
space:
mode:
authorAlexander Lohnau <alexander.lohnau@gmx.de>2021-09-26 18:47:44 +0200
committerAlexander Lohnau <alexander.lohnau@gmx.de>2021-10-13 12:59:30 +0000
commitb0a3e4276e8318475c39c2b7b4b5bc4040dcd19e (patch)
tree6eeea75d0b40a93ae590eb46095215ce6e26ba33 /autotests/kconfigtest.cpp
parent9b44f490c8f5136571da34fcf28eb15e0f3bea6a (diff)
downloadkconfig-b0a3e4276e8318475c39c2b7b4b5bc4040dcd19e.tar.gz
kconfig-b0a3e4276e8318475c39c2b7b4b5bc4040dcd19e.tar.bz2
Create enum to to authorize common keys
By using an enum we have a central place to provide docs for the most common actions/restrictions. Also consumers can pass in type-safe enum values instead of potentially undocumented strings that might contain typos. Also it is better documents is a value is supposed to be authorized using KAuthorized::authorize or KAuthorized::authorizeAction, in the case of "shell_access" this was mixed up from time to time. Considering that we do not want the parameter for the methods to become too long I have deliberately decided against using `enum class`. Also we don't have and usecases for the binary operators in combination with the newly added enums. Task: https://phabricator.kde.org/T11948
Diffstat (limited to 'autotests/kconfigtest.cpp')
-rw-r--r--autotests/kconfigtest.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/autotests/kconfigtest.cpp b/autotests/kconfigtest.cpp
index 00e7bbf0..9f88e67b 100644
--- a/autotests/kconfigtest.cpp
+++ b/autotests/kconfigtest.cpp
@@ -16,6 +16,7 @@
#include <kdesktopfile.h>
#include <qtemporarydir.h>
+#include <kauthorized.h>
#include <kconfiggroup.h>
#include <kconfigwatcher.h>
#include <ksharedconfig.h>
@@ -2071,6 +2072,18 @@ void KConfigTest::testNotify()
QCOMPARE(otherWatcherSpy[0][1].value<QByteArrayList>(), QByteArrayList({"someGlobalEntry"}));
}
+void KConfigTest::testKAuthorizeEnums()
+{
+ KSharedConfig::Ptr config = KSharedConfig::openConfig();
+ KConfigGroup actionRestrictions = config->group("KDE Action Restrictions");
+ actionRestrictions.writeEntry("shell_access", false);
+ actionRestrictions.writeEntry("action/open_with", false);
+
+ QVERIFY(!KAuthorized::authorize(KAuthorized::SHELL_ACCESS));
+ QVERIFY(!KAuthorized::authorizeAction(KAuthorized::OPEN_WITH));
+ actionRestrictions.deleteGroup();
+}
+
void KConfigTest::testKdeglobalsVsDefault()
{
// Add testRestore key with global value in kdeglobals