Skip to content

Commit

Permalink
Change Utils#getSuperTypes to use `ResourceResolver#getParentResour…
Browse files Browse the repository at this point in the history
…ceType(String);

Updates `Utils#getSuperType` to use `resourceResolver.getParentResourceType(superType)`
instead of `resourceResolver.getResource(superType).getResourceSuperType`.

This change is made because any `ResourceResolver` can always resolve the resource
super type hierarchy via `ResourceResolver#getParentResourceType(String)`, even if
`ResrouceResolver#getResource(String)` would be unable to resolve the super type
resource due to permissions.

After this change, the only requirement for the `ResourceResolver` passed to
`Utils#getSuperTypes()` is that it be an active `ResourceResolver` - it does
not need to be a special `ResourceResolver` with any elevated permissions.

----
refs issue adobe#2446
  • Loading branch information
ky940819 committed Jun 11, 2023
1 parent 28efbf8 commit 4be3d35
Showing 1 changed file with 1 addition and 2 deletions.
Expand Up @@ -173,8 +173,7 @@ public static Set<String> getSuperTypes(@NotNull final String resourceType, @Not
Set<String> superTypes = new HashSet<>();
String superType = resourceType;
while (superType != null) {
superType = Optional.ofNullable(resourceResolver.getResource(superType))
.map(Resource::getResourceSuperType)
superType = Optional.ofNullable(resourceResolver.getParentResourceType(superType))
.filter(StringUtils::isNotEmpty)
.orElse(null);
if (superType != null) {
Expand Down

0 comments on commit 4be3d35

Please sign in to comment.