From 2bf29a0d970c9f01acdbf9f1a27fb48482e6cca6 Mon Sep 17 00:00:00 2001 From: Virtually Nick Date: Sat, 20 Jun 2020 21:15:47 -0400 Subject: [PATCH] GUACAMOLE-708: Implement isSkeleton method for ModeledUser. --- .../auth/jdbc/base/ModeledDirectoryObjectService.java | 10 ++++++---- .../apache/guacamole/auth/jdbc/user/ModeledUser.java | 11 +++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) 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); + } }