File indexing completed on 2025-02-02 05:02:33

0001 /*
0002     SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 
0006 #ifndef PERMISSIONMANAGER_H
0007 #define PERMISSIONMANAGER_H
0008 
0009 #include <QJSValue>
0010 
0011 /** Permission enum for use in QML. */
0012 namespace Permission
0013 {
0014     Q_NAMESPACE
0015     enum Permission {
0016         InvalidPermission, // captures QML errors resultin in "0" enum values
0017         ReadCalendar,
0018         WriteCalendar,
0019         PostNotification,
0020         Camera,
0021     };
0022     Q_ENUM_NS(Permission)
0023 }
0024 
0025 /** Check and request platform permissions for access to controlled resources (calendar, location, etc). */
0026 class PermissionManager
0027 {
0028     Q_GADGET
0029 public:
0030     Q_INVOKABLE static bool checkPermission(Permission::Permission permission);
0031     Q_INVOKABLE static void requestPermission(Permission::Permission permission, QJSValue callback);
0032 };
0033 
0034 #endif // PERMISSIONMANAGER_H