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

Bertrand Delacretaz commented on SLING-8757:
--------------------------------------------

bq. ...that's what i meant with adding too much additional complexity and 
that's the reason why i suggested a different option...

Got it.

My understanding is that we need a way to compute the path of a home folder or 
set of home folders in various places where paths can be used.

Considering that the repoinit syntax is pretty explicit so far, I'm not in 
favor of having "magic" like recognizing patterns to differentiate raw paths 
from paths based on user names.

With this in mind I suggest taking your first option with a slight change, 
adding a {{home()}} function for clarity:

* Create a new {{HOME_PATH}} production which accepts expressions like 
{{home(alice)}} and {{home(alice,bob,fred)}}
* Extend the {{pathsList}} production to be {{t=<PATH_STRING> | t = 
<PATH_REPOSITORY> | t=<HOME_PATH>}}.

This allows statements like {{home(alice)}} and {{home(alice,bob,fred)}} to be 
used anywhere paths are used, and if that's not valid in some cases the JCR 
backend would have to detect that.

I think that's a reasonable change to make, with low impact on existing code.

> Add option to set/edit access control policies at user homes
> ------------------------------------------------------------
>
>                 Key: SLING-8757
>                 URL: https://issues.apache.org/jira/browse/SLING-8757
>             Project: Sling
>          Issue Type: Improvement
>          Components: Repoinit
>            Reporter: Angela Schreiber
>            Priority: Major
>
> [~rombert], while looking into moving all service user creation and 
> permission setup from content packages to repo init, i noticed that there is 
> one special case that doesn't seem to be covered by repo init but possible 
> with Jackrabbit content packages: creating/editing access control policies at 
> a user home. the path of those is an implementation detail and cannot be 
> 'guessed'.
> based on my previous work on the repo-init grammar, i could envision the 
> following main options to include this functionality.
> # explicitly extend the 'path-token' which is currently defined to be 
> {{(PATH_STRING> | t = <PATH_REPOSITORY>)}} to something like {{(PATH_STRING> 
> | t = <PATH_REPOSITORY> | <USER_ID>)}}.
> # similar to the first one: but don't touch the grammar just extend the 
> jcr-implementation: if 'path' is a relative path and is not _repository_, 
> treat it as userId and try to obtain a path from the corresponding user 
> object.
> # completely separate it from the 'pathList' and don't allow a combination of 
> absolute paths, repository-marker and userIds, explicitly include the notion 
> that the edited policy is not bound to a regular path but to a user home.... 
> instead of {{on /abspath, repository}} it then would e.g. say {{on user id1, 
> id2}}
> without having looked into it in great detail and given the fact that there 
> are already so many different ways to edit access control content with 
> repo-init, the first option would feel the most natural to me. 
> wdyt? i could try to come up with a patch/tests/docu, but i would love to 
> avoid investing a lot of time and then have to throw it away or redo it all 
> over again.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to