|
|
@@ -0,0 +1,56 @@
|
|
|
+import _ from 'lodash'
|
|
|
+import App from '../../../base'
|
|
|
+
|
|
|
+export default App.controller('UserAffiliationsReconfirmController', function(
|
|
|
+ $scope,
|
|
|
+ UserAffiliationsDataService,
|
|
|
+ $window
|
|
|
+) {
|
|
|
+ $scope.reconfirm = {}
|
|
|
+ // For portals:
|
|
|
+ $scope.userEmails = window.data.userEmails
|
|
|
+ // For settings page:
|
|
|
+ $scope.ui = $scope.ui || {} // $scope.ui inherited on settings page
|
|
|
+ // For dashboard:
|
|
|
+ $scope.allInReconfirmNotificationPeriods =
|
|
|
+ window.data.allInReconfirmNotificationPeriods
|
|
|
+
|
|
|
+ function sendReconfirmEmail(email) {
|
|
|
+ $scope.ui.hasError = false
|
|
|
+ $scope.ui.isMakingRequest = true
|
|
|
+ UserAffiliationsDataService.resendConfirmationEmail(email)
|
|
|
+ .then(() => {
|
|
|
+ $scope.reconfirm[email].reconfirmationSent = true
|
|
|
+ })
|
|
|
+ .catch(error => {
|
|
|
+ $scope.ui.hasError = true
|
|
|
+ })
|
|
|
+ .finally(() => ($scope.ui.isMakingRequest = false))
|
|
|
+ }
|
|
|
+
|
|
|
+ $scope.reconfirmationRemoveEmail = $window.data.reconfirmationRemoveEmail
|
|
|
+ $scope.reconfirmedViaSAML = $window.data.reconfirmedViaSAML
|
|
|
+
|
|
|
+ $scope.requestReconfirmation = function(obj, userEmail) {
|
|
|
+ const email = userEmail.email
|
|
|
+ // For the settings page, disable other parts of affiliation UI
|
|
|
+ $scope.ui.isMakingRequest = true
|
|
|
+ $scope.ui.isProcessing = true
|
|
|
+ // create UI scope for requested email
|
|
|
+ $scope.reconfirm[email] = $scope.reconfirm[email] || {} // keep existing scope for resend email requests
|
|
|
+
|
|
|
+ const location = obj.currentTarget.getAttribute('data-location')
|
|
|
+ const institutionId = _.get(userEmail, ['affiliation', 'institution', 'id'])
|
|
|
+ const ssoEnabled = _.get(userEmail, [
|
|
|
+ 'affiliation',
|
|
|
+ 'institution',
|
|
|
+ 'ssoEnabled'
|
|
|
+ ])
|
|
|
+
|
|
|
+ if (ssoEnabled) {
|
|
|
+ $window.location.href = `${$scope.samlInitPath}?university_id=${institutionId}&reconfirm=${location}`
|
|
|
+ } else {
|
|
|
+ sendReconfirmEmail(email)
|
|
|
+ }
|
|
|
+ }
|
|
|
+})
|