diff --git a/docs-web/src/main/webapp/src/app/docs/controller/Login.js b/docs-web/src/main/webapp/src/app/docs/controller/Login.js index 9c695aa3..9a5fb7ce 100644 --- a/docs-web/src/main/webapp/src/app/docs/controller/Login.js +++ b/docs-web/src/main/webapp/src/app/docs/controller/Login.js @@ -4,18 +4,28 @@ * Login controller. */ angular.module('docs').controller('Login', function($scope, $rootScope, $state, $dialog, User) { + $scope.codeRequired = false; + + /** + * Login. + */ $scope.login = function() { User.login($scope.user).then(function() { User.userInfo(true).then(function(data) { $rootScope.userInfo = data; }); $state.go('document.default'); - }, function() { - var title = 'Login failed'; - var msg = 'Username or password invalid'; - var btns = [{result:'ok', label: 'OK', cssClass: 'btn-primary'}]; - - $dialog.messageBox(title, msg, btns); + }, function(data) { + if (data.data.type == 'ValidationCodeRequired') { + // A TOTP validation code is required to login + $scope.codeRequired = true; + } else { + // Login truly failed + var title = 'Login failed'; + var msg = 'Username or password invalid'; + var btns = [{result: 'ok', label: 'OK', cssClass: 'btn-primary'}]; + $dialog.messageBox(title, msg, btns); + } }); }; }); \ No newline at end of file diff --git a/docs-web/src/main/webapp/src/partial/docs/login.html b/docs-web/src/main/webapp/src/partial/docs/login.html index 4aabda53..d03c33ed 100644 --- a/docs-web/src/main/webapp/src/partial/docs/login.html +++ b/docs-web/src/main/webapp/src/partial/docs/login.html @@ -17,6 +17,15 @@ + + A validation code is required + + +
+ + +
+