[ https://issues.apache.org/jira/browse/SLING-2708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13558599#comment-13558599 ]
Carsten Ziegeler commented on SLING-2708: ----------------------------------------- I have no good idea yet how to solve this, but at first look it seems that the trick we used to make the isA() check internally using an admin resource resolver was not the best idea as this case shows it only helps in some cases. Maybe we can come up with a better solution than using a resource decorator in the first place? > ResourceUtil.isA() fails for adapted Resources unless user is admin > ------------------------------------------------------------------- > > Key: SLING-2708 > URL: https://issues.apache.org/jira/browse/SLING-2708 > Project: Sling > Issue Type: Bug > Components: ResourceResolver > Reporter: Tyson Norris > > Summary - adapting a Resource to a specified type, loses the ability to test > the Resources super types using ResourceUtil.isA(), UNLESS user is admin > 1. TypeA is defined as: > class TypeA { > private Resource res; > public boolean isTypeB(){ > return ResourceUtil.isA(res, "some/type"); > } > } > 2. TypeA adapter is an AdapterFactory to adapt Resource -> TypeA > 3. /some/res/path is a resource whose sling:resourceSuperType 2 levels up is > "/apps/some/type" > 4. In a JSP, we use code like: > TypeA typeA = resource.adaptTo(TypeA) > if (!typeA.isTypeB()){ > //FAIL: typeA.isTypeB() is actually true > } > Note that: > ResourceUtil.isA(resource, "some/type") == true > but > ResourceUtil.isA(typeA.resource, "some/type") == false > (unless user is admin) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira