diff options
Diffstat (limited to 'src/managers')
| -rw-r--r-- | src/managers/permissions/DynamicPermissionManager.cpp | 19 | ||||
| -rw-r--r-- | src/managers/permissions/DynamicPermissionManager.hpp | 2 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/managers/permissions/DynamicPermissionManager.cpp b/src/managers/permissions/DynamicPermissionManager.cpp index e2865459..62c6fb67 100644 --- a/src/managers/permissions/DynamicPermissionManager.cpp +++ b/src/managers/permissions/DynamicPermissionManager.cpp @@ -53,6 +53,21 @@ static const char* permissionToString(eDynamicPermissionType type) { case PERMISSION_TYPE_SCREENCOPY: return "PERMISSION_TYPE_SCREENCOPY"; case PERMISSION_TYPE_PLUGIN: return "PERMISSION_TYPE_PLUGIN"; case PERMISSION_TYPE_KEYBOARD: return "PERMISSION_TYPE_KEYBOARD"; + case PERMISSION_TYPE_CLIPBOARD_READ: return "PERMISSION_TYPE_CLIPBOARD_READ"; + case PERMISSION_TYPE_CLIPBOARD_WRITE: return "PERMISSION_TYPE_CLIPBOARD_WRITE"; + } + + return "error"; +} + +static const char* permissionToHumanString(eDynamicPermissionType type) { + switch (type) { + case PERMISSION_TYPE_UNKNOWN: return "An application <b>{}</b> is requesting an unknown permission."; + case PERMISSION_TYPE_SCREENCOPY: return "An application <b>{}</b> is trying to capture your screen.<br/><br/>Do you want to allow it to do so?"; + case PERMISSION_TYPE_PLUGIN: return "An application <b>{}</b> is trying to load a plugin: <b>{}</b>.<br/><br/>Do you want to load it?"; + case PERMISSION_TYPE_KEYBOARD: return "A new keyboard has been plugged in: {}.<br/><br/>Do you want to allow it to operate?"; + case PERMISSION_TYPE_CLIPBOARD_READ: return "An application <b>{}</b> is trying to read from your clipboard.<br/><br/>Do you want to allow it to do so?"; + case PERMISSION_TYPE_CLIPBOARD_WRITE: return "An application <b>{}</b> is trying to write to your clipboard.<br/><br/>Do you want to allow it to do so?"; } return "error"; @@ -140,6 +155,10 @@ eDynamicPermissionAllowMode CDynamicPermissionManager::clientPermissionMode(wl_c return PERMISSION_RULE_ALLOW_MODE_PENDING; } + // clipboard permissions are allow default (like keyboard) + if (permission == PERMISSION_TYPE_CLIPBOARD_READ || permission == PERMISSION_TYPE_CLIPBOARD_WRITE) + return PERMISSION_RULE_ALLOW_MODE_ALLOW; + // if we are here, we need to ask, that's the fallback for all these (keyboards won't come here) askForPermission(client, LOOKUP.value_or(""), permission); diff --git a/src/managers/permissions/DynamicPermissionManager.hpp b/src/managers/permissions/DynamicPermissionManager.hpp index 4de1eb32..7f536661 100644 --- a/src/managers/permissions/DynamicPermissionManager.hpp +++ b/src/managers/permissions/DynamicPermissionManager.hpp @@ -18,6 +18,8 @@ enum eDynamicPermissionType : uint8_t { PERMISSION_TYPE_SCREENCOPY, PERMISSION_TYPE_PLUGIN, PERMISSION_TYPE_KEYBOARD, + PERMISSION_TYPE_CLIPBOARD_READ, + PERMISSION_TYPE_CLIPBOARD_WRITE, }; enum eDynamicPermissionRuleSource : uint8_t { |
