Excerpt Include and Include Page macros cannot handle restrictions

We provide a Help and Documentation space to many customers, some are independents and others are part of large franchise chains.

Sometimes a particular customer will have our software configured differently to most and we need to add a paragraph into a page that is visible to them only.


Page (A) documents a procedure and is available to all of our groups. In the middle of the procedure I add an Include Page macro to include a paragraph from child page (B) that is restricted to UserX. The extra content does display correctly to UserX but instead of being invisible to all other users it displays an error to them saying "Unable to render .... page could not be found"

If I use an Include Excerpt instead, UserX can see the content correctly but all other users see an error saying "Unable to render ... user cannot view page".

Pages listed in a Children Display macro are invisible to users without access to those child pages but we don't want the user to have to jump to another page to view a paragraph and then have to return to where they were. Also, there may be multiple child pages and most are not relevant at this point in the procedure so we don't want them all listed.

Links are no good for this either as they are visible to all users regardless of whether the user has access to the linked pages or not. And again, we don't want users to have to follow links to view a paragraph and then have to find their way back to where they were again. This could happen several times within a procedure.

This seems a pretty basic function but I can't see how to make it work in Confluence.

Is anyone able to advise me please?







3 answers

0 votes
Thomas Schlegel Community Champion Feb 17, 2016

Hi Darren,

you can hide the error message, if you put the "excerpt include" into an "show-if"-macro using the Visibility Plugin (https://marketplace.atlassian.com/plugins/net.customware.confluence.plugin.visibility/server/overview)

Visibility Plugin is free.


Thanks for you reply Thomas, but ... really?

We have to muck around adding a plugin and put macros around macros every time we want to include snippets of customer-specific information on a page (potentially hundreds of times across the documentation space) ... just to hide a superfluous error message that should not be displayed anyway as the macros are working perfectly?

The error message should be silent like it is for the Children Display macro.

The "Include Page" and "Include Excerpt" macros already recognise whether the user has access to view the included child page and correctly display it (or not) accordingly. But the extraneous error message displayed to users without access makes it look like something is broken and ruins the professional appearance of the documentation.

The Include Page and Include Excerpt macros are great but this bug makes them unusable for spaces that need to include any customer-specific information.

Are there any plans to fix this bug?





Update: I just looked at the website for this plugin and the most recent version appears to be only for Confluence versions up to 5.8 (we are on 5.9.3)


Thomas Schlegel Community Champion Feb 18, 2016

Hi Darren,

you can look for a suitable solution or wait for Atlassian to fix your problem, it is up to you, but you asked for advise, so I answered you.

We have no problem using the visibility plugin and it is available for 5.9.5, not only for 5.8.


This user macro "wraps" the default _Insert Page_ macro and only shows it if the current user has permission to view that page. It does not show anything if the user doesn't.

## Macro title: Include Restricted Page
## Date created: 01/11/2018
## Macro has a body: N

## @param space:title=Space|type=spacekey|desc=Space where the page excerpt is found
## @param page:title=Page|type=confluence-content|required=true|desc=Page where the excerpt is found
## Check for valid space key, otherwise use current
#set($spacekey= $paramspace)
#if (!$spacekey)
#set ($spacekey=$space.key)
#set($m1 = "{include:")
#set($m2 = "}")
#set($macro = "${m1}${spacekey}:${parampage}${m2}")

#if ($permissionHelper.canViewPage($action.remoteUser, $spacekey, $parampage))

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Feb 06, 2019 in Confluence

Try out the new editing experience

Hi team, I’m Avinoam, a product manager on Confluence Cloud, and today I’m really excited to let the Community know that all customers can now try out the new editing experience and see some of the ...

1,374 views 100 8
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you