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 acfa2c213..133e6628c 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 @@ -427,11 +427,13 @@ public abstract class ModeledDirectoryObjectService getImplicitPermissions(ModeledAuthenticatedUser user, ModelType model) { + // Check to see if the user granting permissions is a skeleton user, + // thus lacking database backing. + if (user.getUser().isSkeleton()) + return Collections.emptyList(); + // Get the user model and check for an entity ID. UserModel userModel = user.getUser().getModel(); - Integer entityId = userModel.getEntityID(); - if (entityId == null) - return Collections.emptyList(); // Build list of implicit permissions Collection implicitPermissions = @@ -442,7 +444,7 @@ public abstract class ModeledDirectoryObjectService implements User { public Permissions getEffectivePermissions() throws GuacamoleException { return super.getEffective(); } + + /** + * Returns true if this user is a skeleton user, lacking a database entity + * entry. + * + * @return + * True if this user is a skeleton user, otherwise false. + */ + public boolean isSkeleton() { + return (getModel().getEntityID() == null); + } }