From: <fg...@us...> - 2013-09-12 09:17:54
|
Revision: 4288 http://openutils.svn.sourceforge.net/openutils/?rev=4288&view=rev Author: fgiust Date: 2013-09-12 09:17:50 +0000 (Thu, 12 Sep 2013) Log Message: ----------- deprecations Modified Paths: -------------- magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AnonymousUserSetupTask.java Modified: magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AnonymousUserSetupTask.java =================================================================== --- magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AnonymousUserSetupTask.java 2013-09-12 09:11:22 UTC (rev 4287) +++ magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AnonymousUserSetupTask.java 2013-09-12 09:17:50 UTC (rev 4288) @@ -19,22 +19,22 @@ package it.openutils.mgnltasks; -import info.magnolia.cms.core.Content; -import info.magnolia.cms.core.HierarchyManager; +import info.magnolia.cms.core.MgnlNodeType; import info.magnolia.cms.security.AccessDeniedException; import info.magnolia.cms.security.Permission; import info.magnolia.cms.security.UserManager; -import info.magnolia.cms.util.NodeDataUtil; +import info.magnolia.jcr.util.NodeUtil; import info.magnolia.module.InstallContext; import info.magnolia.module.delta.AbstractRepositoryTask; import info.magnolia.module.delta.Task; import info.magnolia.module.delta.TaskExecutionException; import info.magnolia.repository.RepositoryConstants; -import java.util.Collection; - +import javax.jcr.Node; import javax.jcr.RepositoryException; +import javax.jcr.Session; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -69,9 +69,9 @@ protected void doExecute(InstallContext installContext) throws RepositoryException, TaskExecutionException { - HierarchyManager hm = installContext.getHierarchyManager(RepositoryConstants.USER_ROLES); + Session hm = installContext.getJCRSession(RepositoryConstants.USER_ROLES); - Content role = hm.getContent("/" + UserManager.ANONYMOUS_USER); + Node role = hm.getNode("/" + UserManager.ANONYMOUS_USER); setupAcl(role, "website", "/*", this.allowAccess ? Permission.READ : Permission.NONE); setupAcl(role, "uri", "/*", this.allowAccess ? Permission.ALL : Permission.NONE); @@ -85,32 +85,45 @@ * @throws RepositoryException * @throws AccessDeniedException */ - private void setupAcl(Content role, String repository, String path, long newpermissions) - throws RepositoryException, AccessDeniedException + private void setupAcl(Node role, String repository, String path, long newpermissions) throws RepositoryException, + AccessDeniedException { - Content acls = role.getChildByName("acl_" + repository); + Node acls = NodeUtil.createPath(role, "acl_" + repository, MgnlNodeType.NT_CONTENTNODE); - Collection<Content> children = acls.getChildren(); + Iterable<Node> children = NodeUtil.getNodes(acls, MgnlNodeType.NT_CONTENTNODE); boolean found = false; - for (Content acl : children) + for (Node acl : children) { - String aclPath = acl.getNodeData("path").getString(); + if (!acl.hasProperty("path")) + { + continue; + } + + String aclPath = acl.getProperty("path").getString(); if (path.equals(aclPath)) { found = true; - long permissions = acl.getNodeData("permissions").getLong(); + long permissions = acl.getProperty("permissions").getLong(); if (permissions != newpermissions) { - NodeDataUtil.getOrCreate(acl, "permissions").setValue(newpermissions); + acl.setProperty("permissions", newpermissions); } } } + + if (!found && StringUtils.equals(path, "/*")) + { + // handle a change in URI ACLs, previously set to "/*", then to "*" + setupAcl(role, repository, "*", newpermissions); + } + if (!found) { log.warn("Security not configured on anonymous user! No acl for {} found on {}", path, repository); } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |