[ 
https://issues.apache.org/jira/browse/SLING-2708?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13558739#comment-13558739
 ] 

Carsten Ziegeler commented on SLING-2708:
-----------------------------------------

Yepp, we already use the decorator to be able to use an admin resource resolver 
for the isA check. I think a isA check with a session/resolver which does not 
have the required permission is useless, so adding a isA method which takes a 
resource resolver does not provide a real benefit. I guess we need to come up 
with a better way to implement the isA method to insure that always an admin 
resource resolver is used (or at least one with required permissions). If we 
are able to come up with an implementation for the AbstractResource class, I 
guess we would be fine.
                
> 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

Reply via email to