]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeUserAdmin.java
Allow unknown principals in Jackrabbit.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / NodeUserAdmin.java
index 7ead081510e7ba3088f7b03786edc998154b5e24..bd48bc38501f40aa21c99497a8482839946c99f8 100644 (file)
@@ -24,7 +24,7 @@ import org.apache.commons.logging.LogFactory;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.KernelHeader;
 import org.argeo.osgi.useradmin.UserDirectory;
-import org.argeo.osgi.useradmin.UserAdminProps;
+import org.argeo.osgi.useradmin.UserAdminConf;
 import org.argeo.osgi.useradmin.LdapUserAdmin;
 import org.argeo.osgi.useradmin.LdifUserAdmin;
 import org.argeo.osgi.useradmin.UserDirectoryException;
@@ -89,7 +89,7 @@ public class NodeUserAdmin implements UserAdmin {
                                throw new CmsException(
                                                "Cannot interpret " + uri + " as an uri", e);
                        }
-                       Dictionary<String, ?> properties = UserAdminProps.uriAsProperties(u
+                       Dictionary<String, ?> properties = UserAdminConf.uriAsProperties(u
                                        .toString());
                        UserDirectory businessRoles;
                        if (u.getScheme().startsWith("ldap")) {
@@ -120,10 +120,10 @@ public class NodeUserAdmin implements UserAdmin {
                        nodeRolesUri = nodeRolesFile.toURI().toString();
                }
 
-               Dictionary<String, ?> nodeRolesProperties = UserAdminProps
+               Dictionary<String, ?> nodeRolesProperties = UserAdminConf
                                .uriAsProperties(nodeRolesUri);
-               if (!nodeRolesProperties.get(UserAdminProps.baseDn.getFullName())
-                               .equals(baseNodeRoleDn)) {
+               if (!nodeRolesProperties.get(UserAdminConf.baseDn.property()).equals(
+                               baseNodeRoleDn)) {
                        throw new CmsException("Invalid base dn for node roles");
                        // TODO deal with "mounted" roles with a different baseDN
                }
@@ -135,7 +135,7 @@ public class NodeUserAdmin implements UserAdmin {
                }
                nodeRoles.setExternalRoles(this);
                nodeRoles.init();
-               addUserAdmin(baseNodeRoleDn, (UserAdmin)nodeRoles);
+               addUserAdmin(baseNodeRoleDn, (UserAdmin) nodeRoles);
                if (log.isTraceEnabled())
                        log.trace("Node roles enabled.");
        }
@@ -147,7 +147,7 @@ public class NodeUserAdmin implements UserAdmin {
                        if (userAdmins.get(name) instanceof UserDirectory) {
                                UserDirectory userDirectory = (UserDirectory) userAdmins
                                                .get(name);
-                               String uri = UserAdminProps.propertiesAsUri(
+                               String uri = UserAdminConf.propertiesAsUri(
                                                userDirectory.getProperties()).toString();
                                res.put(uri, "");
                        } else {
@@ -175,7 +175,9 @@ public class NodeUserAdmin implements UserAdmin {
 
        @Override
        public boolean removeRole(String name) {
-               return findUserAdmin(name).removeRole(name);
+               boolean actuallyDeleted = findUserAdmin(name).removeRole(name);
+               nodeRoles.removeRole(name);
+               return actuallyDeleted;
        }
 
        @Override