Page permissions doubt Edited

There is a sub-page with some data I would like to have only some team members to have access to, but only that subpage. They have view permissions to the space, but the page tree I manage is very restricted. The problem is that even when they have view permissions to that subpage, they can't access the information, is that because they don't have view permission to the parent page?

1 answer

0 vote
Stephen Deutsch Community Champion Jul 18, 2017

Hi Anthony,

That is correct, view restrictions cascade down from parents to children, so if any of the parent/ancestor pages are restricted, then the children/descendants will be restricted too (Edit restrictions do not cascade).

In that case, by allowing view permissions to the parent page, would that cascade to the child pages, or I could then only allow to view one child page of that tree?

Imagine hypothetically if you could restrict the parent and still view a child page. If you restrict the view to the parent page, then how would the child page be displayed in the sidebar? Simply floating with no parent? (restricted pages are not displayed at all, even in the sidebar, because even the title might be confidential)

That's why view restrictions are inherited by the children/descendants. Your only options are:

  • to unrestrict the parent pages,
  • move the page that you want people to be able to view to another location,
  • if you really want to keep the information from the page in the same place, move the page to a location that is visible by the team, change the name slightly, create a new page in the original location with the original name, and use the "Include Page" macro to display the same text of the moved page in this new page in the same location.
  • You can do the same thing in the opposite direction with a user macro. Enter the following user macro (you can use an id of link-to-page-id and name of "Link to Page ID"):
## @param PageToInclude:title=Page ID of page to include|type=string|required=true
#set ( $allowedPages = ["12345678"] ) // $allowedPages = ["1", "2", "3"]
#if ( $allowedPages.contains($paramPageToInclude) )
#set ( $Long = $generalUtil.getSystemStartupTime() )
#set ( $pageId = $Long.parseLong($paramPageToInclude) )
#set ( $page = $pageManager.getPage($pageId) )
#set ( $pageContent = "<p>Page not Found</p>" )
#set ( $pageContent = $page.getBodyAsString() )
$pageContent
#end

substituting "12345678" with the page ID that you want to show, or for additional pages by following the template (this is necessary because it bypasses Confluence permissions, so if you don't restrict the pages then someone could use it to display any page in Confluence). Then create a page with a slightly different name somewhere in the space that is visible to the team and insert this macro along with the page ID to display the page content there.

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Posted Jul 10, 2018 in Confluence

We want to see the templates you've created in Confluence!

Hi Community, Jessica here from the Confluence Product Marketing team!  July’s community challenge is all about sharing pictures  — and as an extension of our first post on what ...

628 views 21 11
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