diff --git a/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionEvaluator.java b/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionEvaluator.java index 9ebdf927575..f1bacb0b867 100644 --- a/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionEvaluator.java +++ b/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionEvaluator.java @@ -71,7 +71,9 @@ public interface ClientPermissionEvaluator { /** * Returns {@code true} if {@link #canView()} returns {@code true}. *

- * Or if the caller has at least one of the {@link AdminRoles#QUERY_CLIENTS} or {@link AdminRoles#QUERY_USERS} roles. + * Or if the caller has at least one of the {@link AdminRoles#QUERY_CLIENTS} role. + *

+ * V1: or {@link AdminRoles#QUERY_USERS} roles. */ boolean canList(); diff --git a/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionsV2.java b/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionsV2.java index bad415a311a..7d7dd6b8ae4 100644 --- a/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionsV2.java +++ b/services/src/main/java/org/keycloak/services/resources/admin/permissions/ClientPermissionsV2.java @@ -48,6 +48,11 @@ class ClientPermissionsV2 extends ClientPermissions { super(session, realm, authz, root); } + @Override + public boolean canList() { + return root.hasOneAdminRole(AdminRoles.QUERY_CLIENTS) || canView(); + } + @Override public boolean canConfigure(ClientModel client) { if (canManage(client)) return true;