[
https://issues.apache.org/jira/browse/SLING-2708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13558629#comment-13558629
]
Felix Meschberger commented on SLING-2708:
------------------------------------------
I think the isA check is problematic with respect to access control and
repository visibility -- another reason why "read" visibility and
"exec"-ability should not be mixed.
The only solution I could come up with for the general case, would be to always
use an admin resource resolver for the isA method. But how would we do that ?
Or do we add a new method (probably on the ResourceUtil class), which takes a
ResourceResolver and a Resource and which does the isA test with the supplied
resource resolver instead of the Resource's one ?
> 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