[
https://issues.apache.org/jira/browse/SLING-10277?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17352528#comment-17352528
]
Bertrand Delacretaz commented on SLING-10277:
---------------------------------------------
I have implemented a fix in PR#12, please review.
It's a grammar change only, both the {{userPrivilegesLine}} and
{{registerPrivilegeStatement}} productions now use this for the list of
privileges, I think that's what we want:
{code}
List<String> privilegesList() :
{
Token t = null;
List<String> priv = new ArrayList<String>();
}
{
( t=<NAMESPACED_ITEM> | t=<STRING> ) { priv.add(t.image); }
( <COMMA> ( t=<NAMESPACED_ITEM> | t=<STRING> ) { priv.add(t.image); } )*
{ return priv; }
}
{code}
> REGISTER PRIVILEGE and SET ACL should support lists of STRING and
> NAMESPACED_ITEM
> ---------------------------------------------------------------------------------
>
> Key: SLING-10277
> URL: https://issues.apache.org/jira/browse/SLING-10277
> Project: Sling
> Issue Type: Bug
> Components: Repoinit
> Reporter: Angela Schreiber
> Assignee: Bertrand Delacretaz
> Priority: Critical
> Attachments: SLING-10277.patch
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> [~bdelacretaz], while working on SLING-10274 [~kpauls] noticed that repo-init
> parser doesn't support aggregated privilege names with namespace prefix.
> Looking at the parser I found that the handling of privileges seems to be
> inconsistent:
> h3. 1. Register Privileges
> the parser defines this as follows:
> {code}
> <REGISTER> ((<ABSTRACT>) {isAbstract = true;})? <PRIVILEGE> (privilege =
> <STRING> | privilege = <NAMESPACED_ITEM>) (<WITH> aggregates =
> principalsList())?
> {code}
> -> privilege name can be a STRING or a NAMESPACED_ITEM (that's correct ((/))
> -> aggregates is a principalList??? that's quite odd and obviously not
> correct.... aggregates can again be a list of STRING and/or NAMESPACED_ITEM
> ((x))
> h3. 2. Using Registered Privileges in AC-lines
> {{line.setProperty(AclLine.PROP_PRIVILEGES}} is always populated with the
> result of {{namespacedItemsList()}}
> -> if my reading is correct that means that only NAMESPACED_ITEM can be used
> as privilege names, which is not correct because a privilege name can be any
> valid JCR name, with or without namespace prefix. ((x))
> h3. 3. Summary and Suggested Fix
> this can easily be illustrated by slightly adjusting the test-*.txt (see
> attachment).
> the fix should IMHO be 2-fold:
> - allow aggregated privilege names to be STRING or NAMESPACED_ITEM
> - allow privilege names in AC-line to be STRING or NAMESPACED_ITEM in
> accordance to the register privilege call.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)