Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Check for read access permission of specified page


Reply

2 Posts   446 Views

Avatar
Vodnar

12 September 2011 at 11:56pm Community Member, 2 Posts

Hi all,

I'm trying to do this: The access to page A is limited to website readers that are members of specified groups only. The access to page B is wider, the same readers like for page A can access it but also other too. I use shortcode in the Content of page B to create link to page A (in fact it's an excerpt from the text of page A, that's why I use shortcode).

When somebody who doesn't have access to page A click on that link, he/she will see an error message and possibility to login with different username. I would like to hide completely that link for such readers (it means the shortcode will return empty string) but I can not figure out how to check whether currently logged user has privileges to access page A or not. If possible I don't want to create some additional permission for that purpose as it's already there - appropriate user groups are selected on "access" tab of page A.

Please, could someone help me with that?

Avatar
Vodnar

13 September 2011 at 4:53am Community Member, 2 Posts

Well, I have found that the solution is really simple. I added into my shortcode handler something like this:

$page = DataObject::get_by_id( 'Page', $id );
if ( $page && $page->canView() ) {
... return page excerpt ...
} else {
... return nothing ...
}

Where $id is ID of linked page A.