/** * An element which displays a box for the user to sign in, sign up and recover their account. */ angular.module('quay').directive('userSetup', function () { var directiveDefinitionObject = { priority: 0, templateUrl: '/static/directives/user-setup.html', replace: false, transclude: true, restrict: 'C', scope: { 'redirectUrl': '=redirectUrl', 'inviteCode': '=inviteCode', 'signInStarted': '&signInStarted', 'signedIn': '&signedIn', 'userRegistered': '&userRegistered' }, controller: function($scope, $location, $timeout, ApiService, KeyService, UserService, Config, Features) { $scope.Config = Config; $scope.Features = Features; $scope.sendRecovery = function() { $scope.sendingRecovery = true; ApiService.requestRecoveryEmail($scope.recovery).then(function(resp) { $scope.invalidRecovery = false; $scope.errorMessage = ''; $scope.sent = resp; $scope.sendingRecovery = false; }, function(resp) { $scope.invalidRecovery = true; $scope.errorMessage = ApiService.getErrorMessage(resp, 'Cannot send recovery email'); $scope.sent = null; $scope.sendingRecovery = false; }); }; $scope.handleUserRegistered = function(username) { $scope.userRegistered({'username': username}); }; $scope.hasSignedIn = function() { return UserService.hasEverLoggedIn() || Config.AUTHENTICATION_TYPE != 'Database'; }; } }; return directiveDefinitionObject; });