From 6c44a94531cd6ee40a341bf1b82e4439fb7777d1 Mon Sep 17 00:00:00 2001 From: Sonia Zorba <sonia.zorba@inaf.it> Date: Mon, 8 Feb 2021 18:01:47 +0100 Subject: [PATCH] Handled sticky flag on UI --- .../it/inaf/ia2/vospace/ui/service/NodeInfo.java | 14 ++++++++++++-- .../inaf/ia2/vospace/ui/service/NodesService.java | 11 ++++++----- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java index 987886a..8de4ace 100644 --- a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java +++ b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodeInfo.java @@ -26,6 +26,7 @@ public class NodeInfo { private final String groupWrite; private final boolean isPublic; private final boolean asyncTrans; + private final boolean sticky; private final boolean busy; private final boolean listOfFiles; @@ -40,6 +41,7 @@ public class NodeInfo { this.groupWrite = getGroupWrite(node); this.isPublic = isPublic(node); this.asyncTrans = isAsyncTrans(node); + this.sticky = isSticky(node); this.busy = isBusy(node); this.listOfFiles = isListOfFiles(node); } @@ -70,11 +72,15 @@ public class NodeInfo { } private boolean isPublic(Node node) { - return getProperty(node, NodeProperties.PUBLIC_READ_URI).map(value -> "t".equals(value)).orElse(false); + return getProperty(node, NodeProperties.PUBLIC_READ_URI).map(value -> "true".equals(value)).orElse(false); } private boolean isAsyncTrans(Node node) { - return getProperty(node, "urn:async_trans").map(value -> "t".equals(value)).orElse(false); + return getProperty(node, NodeProperties.ASYNC_TRANS_URN).map(value -> "true".equals(value)).orElse(false); + } + + private boolean isSticky(Node node) { + return getProperty(node, NodeProperties.STICKY_URN).map(value -> "true".equals(value)).orElse(false); } private boolean isBusy(Node node) { @@ -175,6 +181,10 @@ public class NodeInfo { return asyncTrans; } + public boolean isSticky() { + return sticky; + } + public boolean isBusy() { return busy; } diff --git a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodesService.java b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodesService.java index 4c3b4bf..018ccc2 100644 --- a/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodesService.java +++ b/vospace-ui-backend/src/main/java/it/inaf/ia2/vospace/ui/service/NodesService.java @@ -3,6 +3,7 @@ package it.inaf.ia2.vospace.ui.service; import it.inaf.ia2.aa.data.User; import it.inaf.ia2.vospace.ui.client.VOSpaceClient; import it.inaf.ia2.vospace.ui.data.ListNodeData; +import it.inaf.oats.vospace.datamodel.NodeProperties; import it.inaf.oats.vospace.datamodel.NodeUtils; import java.io.IOException; import java.io.StringWriter; @@ -31,9 +32,9 @@ public class NodesService { public ListNodeData generateNodesHtml(String path, User user) { ListNodeData listNodeData = new ListNodeData(); - + Node node = client.getNode(path); - + listNodeData.setWritable(NodeUtils.checkIfWritable(node, user.getName(), user.getGroups())); try (StringWriter sw = new StringWriter()) { @@ -48,7 +49,7 @@ public class NodesService { } listNodeData.setHtmlTable(sw.toString()); - + return listNodeData; } catch (IOException ex) { throw new UncheckedIOException(ex); @@ -75,7 +76,7 @@ public class NodesService { html += "<td>" + nodeInfo.getGroupRead() + "</td>"; html += "<td>" + nodeInfo.getGroupWrite() + "</td>"; html += "<td>"; - if (NodeUtils.checkIfWritable(node, user.getName(), user.getGroups())) { + if (NodeUtils.checkIfWritable(node, user.getName(), user.getGroups()) && !nodeInfo.isSticky()) { html += "<span class=\"icon trash-icon pointer\" onclick=\"deleteNode('" + nodeInfo.getPath() + "')\"></span>"; } html += "</td>"; @@ -121,7 +122,7 @@ public class NodesService { if (nodeInfo.isPublic()) { return true; } - + if (nodeInfo.getCreator().equals(user.getName())) { return true; } -- GitLab