SLING-7886 AuthorizablePrivilegesInfo returns incorrect information for
non-admin user who has been granted sufficient privileges to do
User/Group Management activites
SLING-7887 The CreateUserServlet should allow non-admin users to create
a user if sufficient privileges have been granted
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
index 86d7430..c82208a 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
@@ -41,6 +41,7 @@
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -96,7 +97,7 @@
private String groupsPath;
private boolean selfRegistrationEnabled;
- @Reference(cardinality=ReferenceCardinality.OPTIONAL)
+ @Reference(cardinality=ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC)
private void bindUserConfiguration(UserConfiguration userConfig, Map<String, Object> properties) {
usersPath = (String)properties.get(UserConstants.PARAM_USER_PATH);
groupsPath = (String)properties.get(UserConstants.PARAM_GROUP_PATH);
@@ -107,7 +108,7 @@
groupsPath = null;
}
- @Reference(cardinality=ReferenceCardinality.OPTIONAL)
+ @Reference(cardinality=ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC)
private void bindCreateUser(CreateUser createUser, Map<String, Object> properties) {
selfRegistrationEnabled = Boolean.TRUE.equals(properties.get("self.registration.enabled"));
}
diff --git a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
index da80ed5..8b5ab29 100644
--- a/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
+++ b/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
@@ -138,7 +138,7 @@
private String usersPath;
- @Reference(cardinality=ReferenceCardinality.OPTIONAL)
+ @Reference(cardinality=ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC)
private void bindUserConfiguration(UserConfiguration userConfig, Map<String, Object> properties) {
usersPath = (String)properties.get(UserConstants.PARAM_USER_PATH);
}