From 33a2afc9b988ccbbe6586af28fbe75e6a4f81878 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 12 Feb 2015 16:46:42 +0000 Subject: [PATCH] Make Wiki handle gracefuly when it doesn't have the authorizations git-svn-id: https://svn.argeo.org/commons/trunk@7822 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../src/org/argeo/cms/text/WikiPage.java | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/org.argeo.cms/src/org/argeo/cms/text/WikiPage.java b/org.argeo.cms/src/org/argeo/cms/text/WikiPage.java index 65afeca4b..38af381a5 100644 --- a/org.argeo.cms/src/org/argeo/cms/text/WikiPage.java +++ b/org.argeo.cms/src/org/argeo/cms/text/WikiPage.java @@ -3,6 +3,7 @@ package org.argeo.cms.text; import javax.jcr.Node; import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; +import javax.jcr.Session; import javax.jcr.nodetype.NodeType; import org.argeo.cms.CmsEditable; @@ -39,23 +40,26 @@ public class WikiPage implements CmsUiProvider, CmsNames { } else if (context.isNodeType(NodeType.NT_FOLDER) || context.getPath().equals("/")) { parent.setBackgroundMode(SWT.INHERIT_NONE); - Node indexNode = JcrUtils.getOrAdd(context, CMS_INDEX, - CmsTypes.CMS_TEXT); - new StandardTextEditor(page, SWT.NONE, indexNode, cmsEditable); - textGd.heightHint = 400; + if (context.getSession().hasPermission(context.getPath(), + Session.ACTION_ADD_NODE)) { + Node indexNode = JcrUtils.getOrAdd(context, CMS_INDEX, + CmsTypes.CMS_TEXT); + new StandardTextEditor(page, SWT.NONE, indexNode, cmsEditable); + textGd.heightHint = 400; - for (NodeIterator ni = context.getNodes(); ni.hasNext();) { - Node textNode = ni.nextNode(); - if (textNode.isNodeType(NodeType.NT_FOLDER)) - new CmsLink(textNode.getName() + "/", textNode.getPath()) - .createUi(parent, textNode); - } - for (NodeIterator ni = context.getNodes(); ni.hasNext();) { - Node textNode = ni.nextNode(); - if (textNode.isNodeType(CmsTypes.CMS_TEXT) - && !textNode.getName().equals(CMS_INDEX)) - new CmsLink(textNode.getName(), textNode.getPath()) - .createUi(parent, textNode); + for (NodeIterator ni = context.getNodes(); ni.hasNext();) { + Node textNode = ni.nextNode(); + if (textNode.isNodeType(NodeType.NT_FOLDER)) + new CmsLink(textNode.getName() + "/", + textNode.getPath()).createUi(parent, textNode); + } + for (NodeIterator ni = context.getNodes(); ni.hasNext();) { + Node textNode = ni.nextNode(); + if (textNode.isNodeType(CmsTypes.CMS_TEXT) + && !textNode.getName().equals(CMS_INDEX)) + new CmsLink(textNode.getName(), textNode.getPath()) + .createUi(parent, textNode); + } } } return page; -- 2.30.2