You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by vn...@apache.org on 2018/10/05 19:30:22 UTC
[1/2] guacamole-client git commit: GUACAMOLE-220: Ignore missing user
or group when retrieving permissions/memberships.
Repository: guacamole-client
Updated Branches:
refs/heads/staging/1.0.0 25071673d -> 1f55349d2
GUACAMOLE-220: Ignore missing user or group when retrieving permissions/memberships.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/adb9aaa5
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/adb9aaa5
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/adb9aaa5
Branch: refs/heads/staging/1.0.0
Commit: adb9aaa5e2b89ee8fa81dba3b76224baaab5e76a
Parents: 7fcb506
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Oct 5 11:56:42 2018 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Oct 5 11:56:42 2018 -0700
----------------------------------------------------------------------
.../manage/controllers/manageUserController.js | 21 ++++++++-----
.../controllers/manageUserGroupController.js | 33 ++++++++++++++------
.../webapp/app/rest/services/requestService.js | 27 ++++++++++++++++
3 files changed, 65 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/adb9aaa5/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js
----------------------------------------------------------------------
diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js
index 7d8397f..42568a7 100644
--- a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js
+++ b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js
@@ -248,20 +248,27 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto
var loadExistingUser = function loadExistingUser(dataSource, username) {
return $q.all({
users : dataSourceService.apply(userService.getUser, dataSources, username),
- permissions : permissionService.getPermissions(dataSource, username),
- parentGroups : membershipService.getUserGroups(dataSource, username)
+
+ // Use empty permission set if user cannot be found
+ permissions:
+ permissionService.getPermissions(dataSource, username)
+ ['catch'](requestService.defaultValue(new PermissionSet())),
+
+ // Assume no parent groups if user cannot be found
+ parentGroups:
+ membershipService.getUserGroups(dataSource, username)
+ ['catch'](requestService.defaultValue([]))
+
})
.then(function userDataRetrieved(values) {
$scope.users = values.users;
- $scope.user = values.users[dataSource];
$scope.parentGroups = values.parentGroups;
// Create skeleton user if user does not exist
- if (!$scope.user)
- $scope.user = new User({
- 'username' : username
- });
+ $scope.user = values.users[dataSource] || new User({
+ 'username' : username
+ });
// The current user will be associated with username of the existing
// user in the retrieved permission set
http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/adb9aaa5/guacamole/src/main/webapp/app/manage/controllers/manageUserGroupController.js
----------------------------------------------------------------------
diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageUserGroupController.js b/guacamole/src/main/webapp/app/manage/controllers/manageUserGroupController.js
index 229b3b8..b1b04d3 100644
--- a/guacamole/src/main/webapp/app/manage/controllers/manageUserGroupController.js
+++ b/guacamole/src/main/webapp/app/manage/controllers/manageUserGroupController.js
@@ -303,24 +303,39 @@ angular.module('manage').controller('manageUserGroupController', ['$scope', '$in
var loadExistingUserGroup = function loadExistingGroup(dataSource, identifier) {
return $q.all({
userGroups : dataSourceService.apply(userGroupService.getUserGroup, dataSources, identifier),
- permissions : permissionService.getPermissions(dataSource, identifier, true),
- parentGroups : membershipService.getUserGroups(dataSource, identifier, true),
- memberGroups : membershipService.getMemberUserGroups(dataSource, identifier),
- memberUsers : membershipService.getMemberUsers(dataSource, identifier)
+
+ // Use empty permission set if group cannot be found
+ permissions:
+ permissionService.getPermissions(dataSource, identifier, true)
+ ['catch'](requestService.defaultValue(new PermissionSet())),
+
+ // Assume no parent groups if group cannot be found
+ parentGroups:
+ membershipService.getUserGroups(dataSource, identifier, true)
+ ['catch'](requestService.defaultValue([])),
+
+ // Assume no member groups if group cannot be found
+ memberGroups:
+ membershipService.getMemberUserGroups(dataSource, identifier)
+ ['catch'](requestService.defaultValue([])),
+
+ // Assume no member users if group cannot be found
+ memberUsers:
+ membershipService.getMemberUsers(dataSource, identifier)
+ ['catch'](requestService.defaultValue([]))
+
})
.then(function userGroupDataRetrieved(values) {
$scope.userGroups = values.userGroups;
- $scope.userGroup = values.userGroups[dataSource];
$scope.parentGroups = values.parentGroups;
$scope.memberGroups = values.memberGroups;
$scope.memberUsers = values.memberUsers;
// Create skeleton user group if user group does not exist
- if (!$scope.userGroup)
- $scope.userGroup = new UserGroup({
- 'identifier' : identifier
- });
+ $scope.userGroup = values.userGroups[dataSource] || new UserGroup({
+ 'identifier' : identifier
+ });
$scope.permissionFlags = PermissionFlagSet.fromPermissionSet(values.permissions);
http://git-wip-us.apache.org/repos/asf/guacamole-client/blob/adb9aaa5/guacamole/src/main/webapp/app/rest/services/requestService.js
----------------------------------------------------------------------
diff --git a/guacamole/src/main/webapp/app/rest/services/requestService.js b/guacamole/src/main/webapp/app/rest/services/requestService.js
index 9aef124..8d20976 100644
--- a/guacamole/src/main/webapp/app/rest/services/requestService.js
+++ b/guacamole/src/main/webapp/app/rest/services/requestService.js
@@ -92,6 +92,33 @@ angular.module('rest').factory('requestService', ['$injector',
};
/**
+ * Creates a promise error callback which resolves the promise with the
+ * given default value only if the @link{Error} in the original rejection
+ * is a NOT_FOUND error. All other errors are passed through and must be
+ * handled as yet more rejections.
+ *
+ * @param {*} value
+ * The default value to use to resolve the promise if the promise is
+ * rejected with a NOT_FOUND error.
+ *
+ * @returns {Function}
+ * A function which can be provided as the error callback for a
+ * promise.
+ */
+ service.defaultValue = function defaultValue(value) {
+ return service.createErrorCallback(function resolveIfNotFound(error) {
+
+ // Return default value only if not found
+ if (error.type === Error.Type.NOT_FOUND)
+ return value;
+
+ // Reject promise with original error otherwise
+ throw error;
+
+ });
+ };
+
+ /**
* Promise error callback which ignores all rejections due to REST errors,
* but logs all other rejections, such as those due to JavaScript errors.
* This callback should be used in favor of angular.noop in cases where
[2/2] guacamole-client git commit: GUACAMOLE-220: Merge ignore
missing user or group when retrieving permissions/memberships.
Posted by vn...@apache.org.
GUACAMOLE-220: Merge ignore missing user or group when retrieving permissions/memberships.
Project: http://git-wip-us.apache.org/repos/asf/guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-client/commit/1f55349d
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-client/tree/1f55349d
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-client/diff/1f55349d
Branch: refs/heads/staging/1.0.0
Commit: 1f55349d27ceff08062bc0dfb58f9f04784a4d47
Parents: 2507167 adb9aaa
Author: Nick Couchman <vn...@apache.org>
Authored: Fri Oct 5 15:29:38 2018 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Fri Oct 5 15:29:38 2018 -0400
----------------------------------------------------------------------
.../manage/controllers/manageUserController.js | 21 ++++++++-----
.../controllers/manageUserGroupController.js | 33 ++++++++++++++------
.../webapp/app/rest/services/requestService.js | 27 ++++++++++++++++
3 files changed, 65 insertions(+), 16 deletions(-)
----------------------------------------------------------------------