GUACAMOLE-197: Handle extra login fields when dealing with failed authentication.

This commit is contained in:
Nick Couchman
2018-01-16 14:22:52 -05:00
parent b0284ec710
commit b7db93c729

View File

@@ -66,6 +66,7 @@ angular.module('login').directive('guacLogin', [function guacLogin() {
var Field = $injector.get('Field'); var Field = $injector.get('Field');
// Required services // Required services
var $log = $injector.get('$log');
var $route = $injector.get('$route'); var $route = $injector.get('$route');
var authenticationService = $injector.get('authenticationService'); var authenticationService = $injector.get('authenticationService');
@@ -168,13 +169,17 @@ angular.module('login').directive('guacLogin', [function guacLogin() {
else else
$scope.loginError = error.translatableMessage; $scope.loginError = error.translatableMessage;
// Clear all visible password fields // Clear all remaining fields that are not username fields
angular.forEach($scope.remainingFields, function clearEnteredValueIfPassword(field) { angular.forEach($scope.remainingFields, function clearEnteredValueIfPassword(field) {
// Remove entered value only if field is a password field // Remove entered value only if field is a password field
if (field.type === Field.Type.PASSWORD && field.name in $scope.enteredValues) if (field.type === Field.Type.PASSWORD)
$scope.enteredValues[field.name] = ''; $scope.enteredValues[field.name] = '';
// If field is not username field and not password field, delete it.
else if (field.type !== Field.Type.USERNAME)
delete $scope.enteredValues[field.name];
}); });
} }