[ 
https://issues.apache.org/jira/browse/JCR-4055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dominique Jäggi reassigned JCR-4055:
------------------------------------

    Assignee: Dominique Jäggi  (was: angela)

>  Have AuthorizableQueryManager Support Named search with ignorecase
> -------------------------------------------------------------------
>
>                 Key: JCR-4055
>                 URL: https://issues.apache.org/jira/browse/JCR-4055
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-api, jackrabbit-jcr-commons
>    Affects Versions: 2.8
>            Reporter: Rachit Kumar
>            Assignee: Dominique Jäggi
>
> Usecase :
> We need to make search on Name and AuthorizableId while searching for users. 
> Hence we used the 'named'[0] token while creating the json. But we realized 
> that 'named' token doesn't support the ignore case feature due to which our 
> search is failing. Can you please include an option to enable/disable the 
> ignore case functionality.
> I have found a similar jira[1] reported earlier for the sort option.
> Sample Query :
> select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and contains([rep:principalName], 
> 'rohan....@sandisk.com*')
> union select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and contains([cq:first-name], 
> 'rohan....@sandisk.com*')
> union select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and contains([cq:last-name], 
> 'rohan....@sandisk.com*')
> union select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and contains([profile/givenName], 
> 'rohan....@sandisk.com*')
> union select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and contains([profile/familyName], 
> 'rohan....@sandisk.com*')
> union select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and [rep:authorizableId] like 
> 'rohan....@sandisk.com'
> union select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and [rep:principalName] like 
> 'rohan....@sandisk.com'
> union select [jcr:path], [jcr:score], * from [rep:Authorizable] as a where 
> isdescendantnode(a, '/home') and name(a) like 'rohan....@sandisk.com'
> order by lower([rep:principalName]
> The name(a) like 'rohan....@sandisk.com' doesn't honor the ignorecase.
> Sample Calling :
> public Iterator<Authorizable> execute(final String query) throws 
> RepositoryException, IOException {
>   try {
>     return userManager.findAuthorizables(new Query(){
>       public <T>void build(      QueryBuilder<T> builder){
>         try {
>           builder.setLimit(0,MAX_RESULT_COUNT);
>           new QueryTranslator<T>(builder).translate(query);
>         }
>  catch (        IOException e) {
>           throw new IllegalArgumentException(e);
>         }
>       }
>     }
> );
>   }
>  catch (  IllegalArgumentException e) {
>     Throwable cause=e.getCause();
>     if (cause instanceof IOException) {
>       throw (IOException)cause;
>     }
>  else {
>       throw e;
>     }
>   }
> }
> [0] 
> https://docs.adobe.com/content/docs/en/aem/6-0/develop/ref/javadoc/org/apache/jackrabbit/api/security/user/QueryBuilder.html#nameMatches(java.lang.String)
> [1] https://issues.apache.org/jira/browse/JCR-3845



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to