mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
GUAC-995 Connection permission filter should take admin permission into account when filtering connection list.
This commit is contained in:
@@ -45,6 +45,7 @@ import org.glyptodon.guacamole.net.auth.User;
|
||||
import org.glyptodon.guacamole.net.auth.UserContext;
|
||||
import org.glyptodon.guacamole.net.auth.permission.ConnectionPermission;
|
||||
import org.glyptodon.guacamole.net.auth.permission.ObjectPermission;
|
||||
import org.glyptodon.guacamole.net.auth.permission.SystemPermission;
|
||||
import org.glyptodon.guacamole.net.basic.rest.AuthProviderRESTExposure;
|
||||
import org.glyptodon.guacamole.net.basic.rest.ObjectRetrievalService;
|
||||
import org.glyptodon.guacamole.net.basic.rest.auth.AuthenticationService;
|
||||
@@ -112,6 +113,9 @@ public class ConnectionGroupRESTService {
|
||||
|
||||
User self = userContext.self();
|
||||
|
||||
// An admin user has access to any connection or connection group
|
||||
boolean isAdmin = self.hasPermission(new SystemPermission(SystemPermission.Type.ADMINISTER));
|
||||
|
||||
// Retrieve specified connection group
|
||||
ConnectionGroup connectionGroup;
|
||||
try {
|
||||
@@ -139,7 +143,7 @@ public class ConnectionGroupRESTService {
|
||||
continue;
|
||||
|
||||
// Filter based on permission, if requested
|
||||
if (permission == null || self.hasPermission(new ConnectionPermission(permission, childIdentifier)))
|
||||
if (isAdmin || permission == null || self.hasPermission(new ConnectionPermission(permission, childIdentifier)))
|
||||
apiConnections.add(new APIConnection(childConnection));
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user