GUAC-586: Ignore possible lack of specific permission sets.

This commit is contained in:
Michael Jumper
2015-09-03 14:06:00 -07:00
parent 4f9440aaeb
commit dbc94261ee

View File

@@ -191,6 +191,10 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
*/ */
var hasPermission = function hasPermission(permMap, type, identifier) { var hasPermission = function hasPermission(permMap, type, identifier) {
// No permission if no permission map at all
if (!permMap)
return false;
// If no identifier given, search ignoring the identifier // If no identifier given, search ignoring the identifier
if (!identifier) if (!identifier)
return containsPermission(permMap, type); return containsPermission(permMap, type);
@@ -303,6 +307,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* true if the permission is present (granted), false otherwise. * true if the permission is present (granted), false otherwise.
*/ */
PermissionSet.hasSystemPermission = function hasSystemPermission(permSet, type) { PermissionSet.hasSystemPermission = function hasSystemPermission(permSet, type) {
if (!permSet.systemPermissions) return false;
return permSet.systemPermissions.indexOf(type) !== -1; return permSet.systemPermissions.indexOf(type) !== -1;
}; };
@@ -324,6 +329,8 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
*/ */
PermissionSet.addSystemPermission = function addSystemPermission(permSet, type) { PermissionSet.addSystemPermission = function addSystemPermission(permSet, type) {
permSet.systemPermissions = permSet.systemPermissions || [];
// Add permission, if it doesn't already exist // Add permission, if it doesn't already exist
if (permSet.systemPermissions.indexOf(type) === -1) { if (permSet.systemPermissions.indexOf(type) === -1) {
permSet.systemPermissions.push(type); permSet.systemPermissions.push(type);
@@ -352,6 +359,8 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
*/ */
PermissionSet.removeSystemPermission = function removeSystemPermission(permSet, type) { PermissionSet.removeSystemPermission = function removeSystemPermission(permSet, type) {
permSet.systemPermissions = permSet.systemPermissions || [];
// Remove permission, if it exists // Remove permission, if it exists
var permLocation = permSet.systemPermissions.indexOf(type); var permLocation = permSet.systemPermissions.indexOf(type);
if (permLocation !== -1) { if (permLocation !== -1) {
@@ -463,6 +472,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* already present in the given permission set. * already present in the given permission set.
*/ */
PermissionSet.addConnectionPermission = function addConnectionPermission(permSet, type, identifier) { PermissionSet.addConnectionPermission = function addConnectionPermission(permSet, type, identifier) {
permSet.connectionPermissions = permSet.connectionPermissions || {};
return addObjectPermission(permSet.connectionPermissions, type, identifier); return addObjectPermission(permSet.connectionPermissions, type, identifier);
}; };
@@ -486,6 +496,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* present in the given permission set. * present in the given permission set.
*/ */
PermissionSet.removeConnectionPermission = function removeConnectionPermission(permSet, type, identifier) { PermissionSet.removeConnectionPermission = function removeConnectionPermission(permSet, type, identifier) {
permSet.connectionPermissions = permSet.connectionPermissions || {};
return removeObjectPermission(permSet.connectionPermissions, type, identifier); return removeObjectPermission(permSet.connectionPermissions, type, identifier);
}; };
@@ -511,6 +522,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* already present in the given permission set. * already present in the given permission set.
*/ */
PermissionSet.addConnectionGroupPermission = function addConnectionGroupPermission(permSet, type, identifier) { PermissionSet.addConnectionGroupPermission = function addConnectionGroupPermission(permSet, type, identifier) {
permSet.connectionGroupPermissions = permSet.connectionGroupPermissions || {};
return addObjectPermission(permSet.connectionGroupPermissions, type, identifier); return addObjectPermission(permSet.connectionGroupPermissions, type, identifier);
}; };
@@ -535,6 +547,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* present in the given permission set. * present in the given permission set.
*/ */
PermissionSet.removeConnectionGroupPermission = function removeConnectionGroupPermission(permSet, type, identifier) { PermissionSet.removeConnectionGroupPermission = function removeConnectionGroupPermission(permSet, type, identifier) {
permSet.connectionGroupPermissions = permSet.connectionGroupPermissions || {};
return removeObjectPermission(permSet.connectionGroupPermissions, type, identifier); return removeObjectPermission(permSet.connectionGroupPermissions, type, identifier);
}; };
@@ -560,6 +573,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* already present in the given permission set. * already present in the given permission set.
*/ */
PermissionSet.addActiveConnectionPermission = function addActiveConnectionPermission(permSet, type, identifier) { PermissionSet.addActiveConnectionPermission = function addActiveConnectionPermission(permSet, type, identifier) {
permSet.activeConnectionPermissions = permSet.activeConnectionPermissions || {};
return addObjectPermission(permSet.activeConnectionPermissions, type, identifier); return addObjectPermission(permSet.activeConnectionPermissions, type, identifier);
}; };
@@ -584,6 +598,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* present in the given permission set. * present in the given permission set.
*/ */
PermissionSet.removeActiveConnectionPermission = function removeActiveConnectionPermission(permSet, type, identifier) { PermissionSet.removeActiveConnectionPermission = function removeActiveConnectionPermission(permSet, type, identifier) {
permSet.activeConnectionPermissions = permSet.activeConnectionPermissions || {};
return removeObjectPermission(permSet.activeConnectionPermissions, type, identifier); return removeObjectPermission(permSet.activeConnectionPermissions, type, identifier);
}; };
@@ -607,6 +622,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* already present in the given permission set. * already present in the given permission set.
*/ */
PermissionSet.addUserPermission = function addUserPermission(permSet, type, identifier) { PermissionSet.addUserPermission = function addUserPermission(permSet, type, identifier) {
permSet.userPermissions = permSet.userPermissions || {};
return addObjectPermission(permSet.userPermissions, type, identifier); return addObjectPermission(permSet.userPermissions, type, identifier);
}; };
@@ -630,6 +646,7 @@ angular.module('rest').factory('PermissionSet', [function definePermissionSet()
* present in the given permission set. * present in the given permission set.
*/ */
PermissionSet.removeUserPermission = function removeUserPermission(permSet, type, identifier) { PermissionSet.removeUserPermission = function removeUserPermission(permSet, type, identifier) {
permSet.userPermissions = permSet.userPermissions || {};
return removeObjectPermission(permSet.userPermissions, type, identifier); return removeObjectPermission(permSet.userPermissions, type, identifier);
}; };