- nodeRightsManagementPage = new NodeRightsManagementPage(this,
- WorkbenchUiPlugin
- .getMessage("nodeRightsManagementPageTitle"),
- currentNode);
- addPage(nodeRightsManagementPage);
-
- nodeVersionHistoryPage = new NodeVersionHistoryPage(
- this,
- WorkbenchUiPlugin.getMessage("nodeVersionHistoryPageTitle"),
- currentNode);
- addPage(nodeVersionHistoryPage);
+ AccessControlManager accessControlManager = currentNode
+ .getSession().getAccessControlManager();
+ List<Privilege> privileges = new ArrayList<Privilege>();
+ privileges.add(accessControlManager
+ .privilegeFromName(Privilege.JCR_READ_ACCESS_CONTROL));
+ if (accessControlManager.hasPrivileges(currentNode.getPath(),
+ privileges.toArray(new Privilege[0]))) {
+ nodeRightsManagementPage = new NodeRightsManagementPage(this,
+ WorkbenchUiPlugin
+ .getMessage("nodeRightsManagementPageTitle"),
+ currentNode);
+ addPage(nodeRightsManagementPage);
+ }
+ if (currentNode.isNodeType(NodeType.MIX_VERSIONABLE)) {
+ nodeVersionHistoryPage = new NodeVersionHistoryPage(this,
+ WorkbenchUiPlugin
+ .getMessage("nodeVersionHistoryPageTitle"),
+ currentNode);
+ addPage(nodeVersionHistoryPage);
+ }
+
+ } catch (RepositoryException e) {
+ throw new ArgeoException("Cannot get node info for " + currentNode,
+ e);