Author: ieb
Date: Thu Jul 30 20:43:43 2009
New Revision: 799437
URL: http://svn.apache.org/viewvc?rev=799437&view=rev
Log:
SLING-1067
Fixed by checking the session cound to the request to see if its an
administrator. If the user is an administrator they can register other users.
Modified:
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
Modified:
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
URL:
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java?rev=799437&r1=799436&r2=799437&view=diff
==============================================================================
---
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
(original)
+++
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
Thu Jul 30 20:43:43 2009
@@ -166,8 +166,22 @@
protected void handleOperation(SlingHttpServletRequest request,
HtmlResponse response, List<Modification> changes)
throws RepositoryException {
+
+ // check for an administrator
+ boolean administrator = false;
+ try {
+ Session currentSession =
request.getResourceResolver().adaptTo(Session.class);
+ UserManager um = AccessControlUtil.getUserManager(currentSession);
+ User currentUser = (User)
um.getAuthorizable(currentSession.getUserID());
+ administrator = currentUser.isAdmin();
+ } catch ( Exception ex ) {
+ log.warn("Failed to determin if the user is an admin, assuming
not. Cause: "+ex.getMessage());
+ administrator = false;
+ }
+
+
// make sure user self-registration is enabled
- if (!selfRegistrationEnabled) {
+ if (!administrator && !selfRegistrationEnabled) {
throw new RepositoryException(
"Sorry, registration of new users is not currently enabled.
Please try again later.");
}