diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledChildDirectoryObjectService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledChildDirectoryObjectService.java index 74ca5bb34..f517e2788 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledChildDirectoryObjectService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledChildDirectoryObjectService.java @@ -53,7 +53,8 @@ public abstract class ModeledChildDirectoryObjectService modifiedParents = getModifiedParents(user, identifier, model); if (!modifiedParents.isEmpty()) { - ObjectPermissionSet permissionSet = getParentPermissionSet(user); + ObjectPermissionSet permissionSet = getParentEffectivePermissionSet(user); Collection updateableParents = permissionSet.getAccessibleObjects( Collections.singleton(ObjectPermission.Type.UPDATE), modifiedParents diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledDirectoryObjectService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledDirectoryObjectService.java index 3e3e707d5..e87d6649f 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledDirectoryObjectService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/ModeledDirectoryObjectService.java @@ -126,7 +126,8 @@ public abstract class ModeledDirectoryObjectService implements Us /** * Returns whether this user is a system administrator, and thus is not - * restricted by permissions. + * restricted by permissions, taking into account permission inheritance + * via user groups. * * @return * true if this user is a system administrator, false otherwise. @@ -343,7 +344,7 @@ public class ModeledUser extends ModeledDirectoryObject implements Us * status. */ public boolean isAdministrator() throws GuacamoleException { - SystemPermissionSet systemPermissionSet = getSystemPermissions(); + SystemPermissionSet systemPermissionSet = getEffectivePermissions().getSystemPermissions(); return systemPermissionSet.hasPermission(SystemPermission.Type.ADMINISTER); } diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/UserService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/UserService.java index 9f7fb8761..2c70e2201 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/UserService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/UserService.java @@ -216,17 +216,17 @@ public class UserService extends ModeledDirectoryObjectService