| 
     
      
      
      From: <fg...@us...> - 2013-09-12 09:09:46
      
     
   | 
Revision: 4286
          http://openutils.svn.sourceforge.net/openutils/?rev=4286&view=rev
Author:   fgiust
Date:     2013-09-12 09:09:44 +0000 (Thu, 12 Sep 2013)
Log Message:
-----------
deprecation-free
Modified Paths:
--------------
    magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AddPermissionTask.java
Modified: magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AddPermissionTask.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AddPermissionTask.java	2013-09-12 08:21:20 UTC (rev 4285)
+++ magnoliamodules/trunk/openutils-mgnltasks/src/main/java/it/openutils/mgnltasks/AddPermissionTask.java	2013-09-12 09:09:44 UTC (rev 4286)
@@ -19,22 +19,24 @@
 
 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.core.Path;
 import info.magnolia.cms.security.AccessDeniedException;
-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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+
 /**
  * Sets or add permissions on a repository:path for a given role.
  * @author fgiust
@@ -51,6 +53,8 @@
 
     private final long permission;
 
+    private Logger log = LoggerFactory.getLogger(AddPermissionTask.class);
+
     public AddPermissionTask(String role, String repo, String path, long permission)
     {
         super("Setup permissions on " + repo + ":" + path + " for " + role, "Setup permissions on "
@@ -73,9 +77,9 @@
     protected void doExecute(InstallContext installContext) throws RepositoryException, TaskExecutionException
     {
 
-        HierarchyManager hm = installContext.getHierarchyManager(RepositoryConstants.USER_ROLES);
+        Session hm = installContext.getJCRSession(RepositoryConstants.USER_ROLES);
 
-        Content roleNode = hm.getContent("/" + role);
+        Node roleNode = hm.getNode("/" + role);
 
         setupAcl(roleNode, repo, path, permission);
     }
@@ -87,27 +91,27 @@
      * @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);
 
-        if (acls == null)
-        {
-            acls = role.createContent("acl_" + repository, "mgnl:contentNode");
-        }
+        Iterable<Node> children = NodeUtil.getNodes(acls, MgnlNodeType.NT_CONTENTNODE);
 
-        Collection<Content> children = acls.getChildren();
-
         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)
                 {
                     setPermission(acl, path, newpermissions);
@@ -116,9 +120,11 @@
         }
         if (!found)
         {
-            Content acl = acls.createContent(Path.getUniqueLabel(acls, "0"), "mgnl:contentNode");
+            Node acl = NodeUtil.createPath(
+                acls,
+                Path.getUniqueLabel(acls.getSession(), NodeUtil.getPathIfPossible(acls), "0"),
+                MgnlNodeType.NT_CONTENTNODE);
             setPermission(acl, path, newpermissions);
-
         }
     }
 
@@ -128,11 +134,11 @@
      * @throws RepositoryException
      * @throws AccessDeniedException
      */
-    private void setPermission(Content acl, String path, long newpermissions) throws RepositoryException,
+    private void setPermission(Node acl, String path, long newpermissions) throws RepositoryException,
         AccessDeniedException
     {
         log.info("Setting permissions for {} to {}", this.repo + ":" + path, this.role);
-        NodeDataUtil.getOrCreate(acl, "path").setValue(path);
-        NodeDataUtil.getOrCreate(acl, "permissions").setValue(newpermissions);
+        acl.setProperty("path", path);
+        acl.setProperty("permissions", newpermissions);
     }
 }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |