UserOauthController.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import App from '../../../base'
  2. export default App.controller('UserOauthController', function(
  3. $http,
  4. $scope,
  5. $q
  6. ) {
  7. const _reset = function() {
  8. $scope.ui = {
  9. hasError: false,
  10. errorMessage: ''
  11. }
  12. $scope.providers = window.oauthProviders
  13. $scope.thirdPartyIds = window.thirdPartyIds
  14. }
  15. const _unlinkError = (providerId, err) => {
  16. $scope.providers[providerId].ui.hasError = true
  17. $scope.providers[providerId].ui.errorMessage =
  18. err && err.data && err.data.message ? err.data.message : 'error'
  19. }
  20. $scope.unlink = providerId => {
  21. if (window.ExposedSettings.isOverleaf) {
  22. // UI
  23. $scope.providers[providerId].ui = {
  24. hasError: false,
  25. isProcessing: true
  26. }
  27. // Data for update
  28. const data = {
  29. _csrf: window.csrfToken,
  30. link: false,
  31. providerId
  32. }
  33. $http
  34. .post('/user/oauth-unlink', data)
  35. .catch(error => {
  36. $scope.providers[providerId].ui.isProcessing = false
  37. _unlinkError(providerId, error)
  38. })
  39. .then(response => {
  40. $scope.providers[providerId].ui.isProcessing = false
  41. if (response.status === 200) {
  42. $scope.thirdPartyIds[providerId] = null
  43. } else {
  44. _unlinkError(providerId, response)
  45. }
  46. })
  47. }
  48. }
  49. _reset()
  50. })