diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionPermissionService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionPermissionService.java index fc21a5abb..2a4cd9ee5 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionPermissionService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionPermissionService.java @@ -82,8 +82,9 @@ public class ActiveConnectionPermissionService // Retrieve permissions only if allowed if (canReadPermissions(user, targetEntity)) { - // Administrators may always access active connections - boolean isAdmin = targetEntity.isPrivileged(); + // Privileged accounts (such as administrators or UserContexts + // returned by getPrivileged()) may always access active connections + boolean isPrivileged = targetEntity.isPrivileged(); // Get all active connections Collection records = tunnelService.getActiveConnections(user); @@ -96,9 +97,9 @@ public class ActiveConnectionPermissionService String identifier = record.getUUID().toString(); permissions.add(new ObjectPermission(ObjectPermission.Type.READ, identifier)); - // If the target use is an admin, or the connection belongs to - // the target user, then they can DELETE - if (isAdmin || targetEntity.isUser(record.getUsername())) + // If the target user is privileged, or the connection belongs + // to the target user, then they can DELETE + if (isPrivileged || targetEntity.isUser(record.getUsername())) permissions.add(new ObjectPermission(ObjectPermission.Type.DELETE, identifier)); } diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java index da5e0ccf9..046cee1e2 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/activeconnection/ActiveConnectionService.java @@ -81,7 +81,7 @@ public class ActiveConnectionService Collection identifiers) throws GuacamoleException { String username = user.getIdentifier(); - boolean isAdmin = user.isPrivileged(); + boolean isPrivileged = user.isPrivileged(); Set identifierSet = new HashSet(identifiers); // Retrieve all visible connections (permissions enforced by tunnel service) @@ -95,7 +95,7 @@ public class ActiveConnectionService // be able to connect to (join) the active connection if they are // the user that started the connection OR the user is an admin boolean hasPrivilegedAccess = - isAdmin || username.equals(record.getUsername()); + isPrivileged || username.equals(record.getUsername()); // Add connection if within requested identifiers if (identifierSet.contains(record.getUUID().toString())) { 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 220f55c15..76903134c 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 @@ -148,7 +148,7 @@ public abstract class ModeledChildDirectoryObjectService objects; - // Bypass permission checks if the user is a system admin + // Bypass permission checks if the user is privileged if (user.isPrivileged()) objects = getObjectMapper().select(identifiers); @@ -507,7 +507,7 @@ public abstract class ModeledDirectoryObjectService getIdentifiers(ModeledAuthenticatedUser user) throws GuacamoleException { - // Bypass permission checks if the user is a system admin + // Bypass permission checks if the user is privileged if (user.isPrivileged()) return getObjectMapper().selectIdentifiers(); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/RelatedObjectSet.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/RelatedObjectSet.java index 3de857329..810e9a5f1 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/RelatedObjectSet.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/base/RelatedObjectSet.java @@ -140,7 +140,8 @@ public abstract class RelatedObjectSet identifiers) throws GuacamoleException { - // System administrators may alter any relations + // Privileged users (such as system administrators) may alter any + // relations if (getCurrentUser().isPrivileged()) return true; @@ -162,7 +163,7 @@ public abstract class RelatedObjectSet getObjects() throws GuacamoleException { - // Bypass permission checks if the user is a system admin + // Bypass permission checks if the user is a privileged ModeledAuthenticatedUser user = getCurrentUser(); if (user.isPrivileged()) return getObjectRelationMapper().selectChildIdentifiers(parent.getModel()); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionService.java index 98c71db7c..926df32fa 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ConnectionService.java @@ -297,7 +297,7 @@ public class ConnectionService extends ModeledChildDirectoryObjectService searchResults; - // Bypass permission checks if the user is a system admin + // Bypass permission checks if the user is privileged if (user.isPrivileged()) searchResults = connectionRecordMapper.search(requiredContents, sortPredicates, limit); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupService.java index 32d9f8c13..dbf7793ec 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupService.java @@ -218,7 +218,7 @@ public class ConnectionGroupService extends ModeledChildDirectoryObjectService permissions) throws GuacamoleException { - // A system adminstrator can do anything + // Privileged users (such as system administrators) may do anything if (user.isPrivileged()) return true; @@ -187,7 +187,7 @@ public abstract class ModeledObjectPermissionService if (identifiers.isEmpty()) return identifiers; - // If user is an admin, everything is accessible + // Privileged users (such as system administrators) may access everything if (user.isPrivileged()) return identifiers; diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/permission/SystemPermissionService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/permission/SystemPermissionService.java index c33242e5d..4b8269f6b 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/permission/SystemPermissionService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/permission/SystemPermissionService.java @@ -94,7 +94,8 @@ public class SystemPermissionService ModeledPermissions targetEntity, Collection permissions) throws GuacamoleException { - // Only an admin can create system permissions + // Only privileged users (such as system administrators) can create + // system permissions if (user.isPrivileged()) { Collection models = getModelInstances(targetEntity, permissions); systemPermissionMapper.insert(models); @@ -111,7 +112,8 @@ public class SystemPermissionService ModeledPermissions targetEntity, Collection permissions) throws GuacamoleException { - // Only an admin can delete system permissions + // Only privileged users (such as system administrators) can delete + // system permissions if (user.isPrivileged()) { // Do not allow users to remove their own admin powers diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java index 1b8dd1762..383ef3a9b 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/tunnel/AbstractGuacamoleTunnelService.java @@ -628,7 +628,8 @@ public abstract class AbstractGuacamoleTunnelService implements GuacamoleTunnelS if (records.isEmpty()) return Collections.emptyList(); - // A system administrator can view all connections; no need to filter + // Privileged users (such as system administrators) can view all + // connections; no need to filter if (user.isPrivileged()) return records; 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 dbbffe35e..0aecd10fa 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 @@ -278,7 +278,7 @@ public class UserService extends ModeledDirectoryObjectService searchResults; - // Bypass permission checks if the user is a system admin + // Bypass permission checks if the user is privileged if (user.isPrivileged()) searchResults = userRecordMapper.search(requiredContents, sortPredicates, limit);