Install-time & Startup Permissions #1148
Replies: 3 comments 5 replies
-
In both these cases (either at install time or startup) apps asking for multiple permissions at once time seems to be an eventual need. From my point of view on the design side, two big things need to be avoided when going down that route:
As far as I am aware, applications on iOS simply spawn one dialog after another for each permission, this does have the upside that users will engage with each permission request however the downside is that as an interaction dealing with multiple dialogs one-after-the-other isn't super ideal. The Android examples above show 2 cases where multiple permissions are grouped. The drawback of grouping (especially as in the Snapchat example) is that the Accept action is pretty prominent and there is next to no disclosure of the permissions needs leading to people just hitting accept, which isn't great for security and user awareness of what each permission allows. The paginated dialog, is probably the most interesting approach here since it requires people to engage with each permission before moving onto the next, but this is not an existing UI pattern (at least on GNOME). A solution here I think needs to consider balancing disclosure (what permission and why) and not requiring too many interactions to process that information. |
Beta Was this translation helpful? Give feedback.
-
I feel like I need an overview of this problem space. It would be cool to have a table of all the portals, with examples of when each one might be used and a note on when the best time to ask the user would be. The latest GNOME mockups might be a useful reference. |
Beta Was this translation helpful? Give feedback.
-
I don't think this is achievable without handling the exact same permission granting the first time the app is run due to the fact that apps might be installed on a system level by e.g. a sysadmin, and/or pre-installed by the operating system. In these two cases any install time querying means the user has no chance to deal with these permissions themselves. |
Beta Was this translation helpful? Give feedback.
-
This is a follow up from a discussion in Matrix. The subject of the discussion is when and how apps should request permissions they use.
Problems
Constraints
Concrete Cases
Case 1: Liveblast
Liveblast is a streaming app that requires access to camera, microphone, and screencast. These are accessed during the app's startup. To avoid carpet-bombing people with permission requests right on startup, it shows an onboarding dialog where each permission is granted individually and explicitly:
Case 2: Flameshot
Flameshot is a cross-platform app that has a rather unique behaviour, which may come as a surprise to many people that aren't already familiar with how it works. When you launch the Flatpak app, nothing visible happens - the Flameshot daemon starts, but no visual indicator is shown. People have to either launch it from the command line (
$ org.flameshot.Flameshot gui
), orright click the icon and launch one of its specific actions.
The main point of Flameshot is that it does not show a window while it is taking a screenshot. This behaviour evidently serves a purpose - the app cannot modify the contents of the screenshot by presenting a window.
This behaviour is problematic right now because, as a convenience and security measure, GNOME rejects permission requests from apps without a visible and focused window.
Relevant Art
Android
Android provides a way for apps to request permissions at install time:
Android merges multiple requests in a paginated dialog:
iOS
TODO
Beta Was this translation helpful? Give feedback.
All reactions