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 User Manager 2.1.0, JCR Jackrabbit Access
Manager 2.0.4
Reporter: Eric Norman
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...
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira