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)
$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
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) {
$scope.rootConnectionGroups = rootConnectionGroups;
}, requestService.WARN);
}, requestService.DIE);
}]);

View File

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

View File

@@ -245,7 +245,7 @@ angular.module('manage').controller('manageConnectionGroupController', ['$scope'
PermissionSet.hasConnectionPermission,
identifier);
}, requestService.WARN);
}, requestService.DIE);
/**
* 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,
identifier);
}, requestService.WARN);
}, requestService.DIE);
/**
* @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

View File

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

View File

@@ -147,7 +147,7 @@ angular.module('manage').directive('systemPermissionEditor', ['$injector',
)
.then(function permissionsReceived(permissions) {
$scope.permissions = permissions;
}, requestService.WARN);
}, requestService.DIE);
/**
* 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];
$scope.userURL = email ? 'mailto:' + email : null;
}, requestService.WARN);
}, requestService.DIE);
/**
* The available main pages for the current user.

View File

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

View File

@@ -178,7 +178,7 @@ angular.module('settings').directive('guacSettingsConnectionHistory', [function
$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) {
$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]
};
});
}, requestService.WARN);
}, requestService.DIE);
// Retrieve current permissions
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
wrapAllActiveConnections();
}, requestService.WARN);
}, requestService.DIE);
// Query active sessions
dataSourceService.apply(
@@ -237,7 +237,7 @@ angular.module('settings').directive('guacSettingsSessions', [function guacSetti
// Attempt to produce wrapped list of active connections
wrapAllActiveConnections();
}, requestService.WARN);
}, requestService.DIE);
// Get session date format
$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);
}]
};