-
Improvement
-
Resolution: Unresolved
-
Normal
-
None
-
2.2.2
-
None
-
any
If Picard is doing many lookups which would require MB.org authentication (e.g. including personal ratings) the "Authentication Required" dialog is shown for each request. This can hit the user unexpectedly and requires a lot of clicking away dialogs.
We should make sure the dialog is only shown once in this case.
- has related issue
-
PICARD-2325 Show MusicBrainz login errors
-
- Closed
-
- is duplicated by
-
PICARD-1898 When going thru the authentification process the token request is in a loop
-
- Closed
-
I had another look at that. My thinking was that moving the entire logic to get the access code and exchange it for the token into a single dialog, which we show.
The idea was that because of authenticationRequired returning immediately fails the request or retries it we could maybe have a single dialog that we run with exec() and which handles everything. Then upon exec() returning we have the access code, and maybe can inject it for all still pending requests.
But this does not work, because oauth requires additional web requests. And while authenticationRequired is running, no further network requests are run. So with the current webservice module based on QNetwork this just won't work to our satisfaction.
At a minimum we would need to handle this not with the authenticationRequired signal, but have our own handling of the 403 response. It definitely requires a refactoring of the network access.