-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Do not call the callback if the selected auth method can't be retreived #28493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Backport to stable10 in #28496 |
| var authMechanism = $(tr).find('.selectAuthMechanism').val(); | ||
| callback($(tr), authMechanism, self._allAuthMechanisms[authMechanism]['scheme']); | ||
| if (authMechanism !== undefined) { | ||
| var onCompletion = jQuery.Deferred(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the point of this deferred/promise ? usually the purpose of a promise is to be returned and resolved later within a callback. Also it seems to be unused.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gdrive uses the "onCompletition" callback, so unless we send something it will explode because the variable will be undefined. From my point of view, it was buggy from the beginning.
It's either use a dummy (the current solution) or try to remove these calls and force triggering an event at some point.
I've also tried to remove the callback. It seemed to work, so I don't know what was the reason to put that code in the first place.
I've already spent too much time just for this, so I've went for patching the bug.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Hemant-Mann I believe this might be related to your recent changes ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jvillafanez Are you referring to this onCompletion callback?
https://github.com/owncloud/core/blob/master/apps/files_external/js/oauth2.js#L17
@PVince81 I don't think this Issue is related to my recent changes.
Hey @jvillafanez could you please describe the issue in a little more detail
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jvillafanez I have gone through the whole flow of selecting GDrive (when creating a PR) and was able to successfully authenticate it using OAuth2 so I am not sure what's the error
See this screenshot here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Delay the https://github.com/owncloud/core/blob/master/apps/files_external/js/oauth2.js#L7 call 5 seconds with a setTimeout, something like:
setTimeout(function(){
console.log('calling method');
OCA.External.Settings.mountConfig.whenSelectAuthMechanism(function($tr, authMechanism, scheme, onCompletion) {
.......
});
}, 5000);
When you select a new mount gdrive mount, the button to grant access to the storage is missing.
This happens in the personal settings page, when several admin mount are presents for the user.
Note that this affects to other storages that are loaded before the files_external's settings js and are forced to use the "mountConfigLoaded" to register the auth mechanism. That delay intends to simulate that, as the call to that method will be done quite late.
As far as I know, the bug might have been there before @Hemant-Mann 's changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok so if @Hemant-Mann has no strong objection let's just merge this...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No Objection from my side. This should be good to go
|
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Description
Related Issue
https://github.com/owncloud/files_onedrive/issues/25
Motivation and Context
javscript code crashed and prevented oauth2 storages to be granted access as the button was missing
How Has This Been Tested?
Manually with google drive in master, adding an artificial delay to force the issue happen consistenly
Screenshots (if appropriate):
Types of changes
Checklist:
Backport to stable10 will be needed.