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

Eric Norman updated SLING-2083:
-------------------------------

          Description: 
It would be nice if the jackrabbit.accessmanager bundle expose OSGI service(s) 
that maps exactly the functionalities of the REST services, so that one can use 
their features also in a programmatic way. 

This can be useful if an application has to manage permissions without having 
an explicit request object (ex: from an EventListener), or in the case a user 
has to manipulate his account (in this case he doesn't have an administrative 
account, so his requests are not permitted to modify users). Also i think that, 
in certain situations, it could be just cleaner and simpler to write a servlet 
or script that directly invoke the methods, instead of find the way to invoke 
the REST services.


  was:
It would be nice if the jackrabbit.accessmanager and jackrabbit.usermanager 
bundles expose OSGI service(s) that maps exactly the functionalities of the 
REST services, so that one can use their features also in a programmatic way. 

This can be useful if an application has to manage users and permissions 
without having an explicit request object (ex: from an EventListener), or in 
the case a user has to manipulate his account (in this case he doesn't have an 
administrative account, so his requests are not permitted to modify users). 
Also i think that, in certain situations, it could be just cleaner and simpler 
to write a servlet or script that directly invoke the methods, instead of find 
the way to invoke the REST services.

I think a simple but exaustive way to achieve this can be the direct mapping of 
the REST services described in 
http://sling.apache.org/site/managing-users-and-groups-jackrabbitusermanager.html
 and 
http://sling.apache.org/site/managing-permissions-jackrabbitaccessmanager.html, 
only using well-known JCR classes.
For example, obtaining the users list could be as simple as getting the 
UserManager OSGI service and invoking a method like "public NodeIterator 
listUsers()", changing a permission could be achieved by getting the 
AccessManager OSGI service and invoking a method like "public void 
modifyPermission(String node_path, String principalId, String privilege_name, 
String privilege_value, String order)", and so on...

Perhaps the best way to standardize these services is a dedicated API that 
formalizes the underlying concepts (ex: User, Group, Privilege and 
NodeAccessControl... if you think it's the case, i could propose my own...), 
but i think the simple REST services mapping could already be a nice (and 
ready-to-go) feature for developers...



    Affects Version/s:     (was: JCR Jackrabbit User Manager 2.1.0)
               Labels: accessmanager api programmatically service  (was: 
accessmanager api programmatically service usermanager)

> AccessManager permissions manipulation services API
> ---------------------------------------------------
>
>                 Key: SLING-2083
>                 URL: https://issues.apache.org/jira/browse/SLING-2083
>             Project: Sling
>          Issue Type: Improvement
>          Components: API
>    Affects Versions:  JCR Jackrabbit Access Manager 2.0.4
>            Reporter: Eric Norman
>              Labels: accessmanager, api, programmatically, service
>
> It would be nice if the jackrabbit.accessmanager bundle expose OSGI 
> service(s) that maps exactly the functionalities of the REST services, so 
> that one can use their features also in a programmatic way. 
> This can be useful if an application has to manage permissions without having 
> an explicit request object (ex: from an EventListener), or in the case a user 
> has to manipulate his account (in this case he doesn't have an administrative 
> account, so his requests are not permitted to modify users). Also i think 
> that, in certain situations, it could be just cleaner and simpler to write a 
> servlet or script that directly invoke the methods, instead of find the way 
> to invoke the REST services.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to