GUACAMOLE-598: Abort rendering of pages if critical data fails to load (data without which the page is non-functional).

This commit is contained in:
Michael Jumper
2018-06-26 22:49:06 -07:00
parent c897c7eb26
commit 5866c7e251
16 changed files with 25 additions and 21 deletions

View File

@@ -205,6 +205,10 @@ angular.module('auth').factory('authenticationService', ['$injector',
else if (error.type === Error.Type.INSUFFICIENT_CREDENTIALS) else if (error.type === Error.Type.INSUFFICIENT_CREDENTIALS)
$rootScope.$broadcast('guacInsufficientCredentials', parameters, error); $rootScope.$broadcast('guacInsufficientCredentials', parameters, error);
// Abort rendering of page if an internal error occurs
else if (error.type === Error.Type.INTERNAL_ERROR)
$rootScope.$broadcast('guacFatalPageError', error);
// Authentication failed // Authentication failed
throw error; throw error;

View File

@@ -222,7 +222,7 @@ angular.module('groupList').directive('guacGroupList', [function guacGroupList()
}); });
}); });
}, requestService.WARN); }, requestService.DIE);
} }

View File

@@ -127,6 +127,6 @@ angular.module('home').controller('homeController', ['$scope', '$injector',
) )
.then(function rootGroupsRetrieved(rootConnectionGroups) { .then(function rootGroupsRetrieved(rootConnectionGroups) {
$scope.rootConnectionGroups = rootConnectionGroups; $scope.rootConnectionGroups = rootConnectionGroups;
}, requestService.WARN); }, requestService.DIE);
}]); }]);

View File

@@ -287,7 +287,7 @@ angular.module('manage').controller('manageConnectionController', ['$scope', '$i
PermissionSet.hasConnectionPermission, PermissionSet.hasConnectionPermission,
identifier); identifier);
}, requestService.WARN); }, requestService.DIE);
// Get history date format // Get history date format
$translate('MANAGE_CONNECTION.FORMAT_HISTORY_START').then(function historyDateFormatReceived(historyDateFormat) { $translate('MANAGE_CONNECTION.FORMAT_HISTORY_START').then(function historyDateFormatReceived(historyDateFormat) {

View File

@@ -245,7 +245,7 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
PermissionSet.hasConnectionPermission, PermissionSet.hasConnectionPermission,
identifier); identifier);
}, requestService.WARN); }, requestService.DIE);
/** /**
* Cancels all pending edits, returning to the main list of connections * Cancels all pending edits, returning to the main list of connections

View File

@@ -277,7 +277,7 @@ angular.module('manage').controller('manageSharingProfileController', ['$scope',
PermissionSet.hasConnectionPermission, PermissionSet.hasConnectionPermission,
identifier); identifier);
}, requestService.WARN); }, requestService.DIE);
/** /**
* @borrows Protocol.getNamespace * @borrows Protocol.getNamespace

View File

@@ -335,7 +335,7 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
}); });
}, requestService.WARN); }, requestService.DIE);
/** /**
* Returns the URL for the page which manages the user account currently * Returns the URL for the page which manages the user account currently

View File

@@ -348,7 +348,7 @@ angular.module('manage').directive('connectionPermissionEditor', ['$injector',
}); });
}, requestService.WARN); }, requestService.DIE);
/** /**
* Updates the permissionsAdded and permissionsRemoved permission sets * Updates the permissionsAdded and permissionsRemoved permission sets

View File

@@ -147,7 +147,7 @@ angular.module('manage').directive('systemPermissionEditor', ['$injector',
) )
.then(function permissionsReceived(permissions) { .then(function permissionsReceived(permissions) {
$scope.permissions = permissions; $scope.permissions = permissions;
}, requestService.WARN); }, requestService.DIE);
/** /**
* Returns whether the current user has permission to change the system * Returns whether the current user has permission to change the system

View File

@@ -111,7 +111,7 @@ angular.module('navigation').directive('guacUserMenu', [function guacUserMenu()
var email = user.attributes[User.Attributes.EMAIL_ADDRESS]; var email = user.attributes[User.Attributes.EMAIL_ADDRESS];
$scope.userURL = email ? 'mailto:' + email : null; $scope.userURL = email ? 'mailto:' + email : null;
}, requestService.WARN); }, requestService.DIE);
/** /**
* The available main pages for the current user. * The available main pages for the current user.

View File

@@ -172,7 +172,7 @@ angular.module('navigation').factory('userPageService', ['$injector',
}) })
.then(function rootConnectionGroupsPermissionsRetrieved(data) { .then(function rootConnectionGroupsPermissionsRetrieved(data) {
deferred.resolve(generateHomePage(data.rootGroups,data.permissionsSets)); deferred.resolve(generateHomePage(data.rootGroups,data.permissionsSets));
}, requestService.WARN); }, requestService.DIE);
return deferred.promise; return deferred.promise;
@@ -336,7 +336,7 @@ angular.module('navigation').factory('userPageService', ['$injector',
// Resolve promise using settings pages derived from permissions // Resolve promise using settings pages derived from permissions
.then(function permissionsRetrieved(permissions) { .then(function permissionsRetrieved(permissions) {
deferred.resolve(generateSettingsPages(permissions)); deferred.resolve(generateSettingsPages(permissions));
}, requestService.WARN); }, requestService.DIE);
return deferred.promise; return deferred.promise;
@@ -417,7 +417,7 @@ angular.module('navigation').factory('userPageService', ['$injector',
.then(function rootConnectionGroupsRetrieved(retrievedRootGroups) { .then(function rootConnectionGroupsRetrieved(retrievedRootGroups) {
rootGroups = retrievedRootGroups; rootGroups = retrievedRootGroups;
resolveMainPages(); resolveMainPages();
}, requestService.WARN); }, requestService.DIE);
// Retrieve current permissions // Retrieve current permissions
dataSourceService.apply( dataSourceService.apply(
@@ -430,7 +430,7 @@ angular.module('navigation').factory('userPageService', ['$injector',
.then(function permissionsRetrieved(retrievedPermissions) { .then(function permissionsRetrieved(retrievedPermissions) {
permissions = retrievedPermissions; permissions = retrievedPermissions;
resolveMainPages(); resolveMainPages();
}, requestService.WARN); }, requestService.DIE);
return deferred.promise; return deferred.promise;

View File

@@ -178,7 +178,7 @@ angular.module('settings').directive('guacSettingsConnectionHistory', [function
$scope.historyEntryWrappers.push(new ConnectionHistoryEntryWrapper(historyEntry)); $scope.historyEntryWrappers.push(new ConnectionHistoryEntryWrapper(historyEntry));
}); });
}, requestService.WARN); }, requestService.DIE);
}; };

View File

@@ -415,9 +415,9 @@ angular.module('settings').directive('guacSettingsConnections', [function guacSe
) )
.then(function connectionGroupsReceived(rootGroups) { .then(function connectionGroupsReceived(rootGroups) {
$scope.rootGroups = rootGroups; $scope.rootGroups = rootGroups;
}, requestService.WARN); }, requestService.DIE);
}, requestService.WARN); // end retrieve permissions }, requestService.DIE); // end retrieve permissions
}] }]
}; };

View File

@@ -178,7 +178,7 @@ angular.module('settings').directive('guacSettingsPreferences', [function guacSe
value: languages[key] value: languages[key]
}; };
}); });
}, requestService.WARN); }, requestService.DIE);
// Retrieve current permissions // Retrieve current permissions
permissionService.getEffectivePermissions(dataSource, username) permissionService.getEffectivePermissions(dataSource, username)

View File

@@ -222,7 +222,7 @@ angular.module('settings').directive('guacSettingsSessions', [function guacSetti
// Attempt to produce wrapped list of active connections // Attempt to produce wrapped list of active connections
wrapAllActiveConnections(); wrapAllActiveConnections();
}, requestService.WARN); }, requestService.DIE);
// Query active sessions // Query active sessions
dataSourceService.apply( dataSourceService.apply(
@@ -237,7 +237,7 @@ angular.module('settings').directive('guacSettingsSessions', [function guacSetti
// Attempt to produce wrapped list of active connections // Attempt to produce wrapped list of active connections
wrapAllActiveConnections(); wrapAllActiveConnections();
}, requestService.WARN); }, requestService.DIE);
// Get session date format // Get session date format
$translate('SETTINGS_SESSIONS.FORMAT_STARTDATE').then(function sessionDateFormatReceived(retrievedSessionDateFormat) { $translate('SETTINGS_SESSIONS.FORMAT_STARTDATE').then(function sessionDateFormatReceived(retrievedSessionDateFormat) {

View File

@@ -275,9 +275,9 @@ angular.module('settings').directive('guacSettingsUsers', [function guacSettings
}); });
}); });
}, requestService.WARN); }, requestService.DIE);
}, requestService.WARN); }, requestService.DIE);
}] }]
}; };