Forums | Mahara Community
Can't get public pages or secret URLs to work
20 November 2013, 11:05 AM
I am trying to get the public pages / secret URLs to work without success. I went to the general administration settings and selected "allow portfolio pages to be public". But when I try to make an actual page public I can't see a way to set that up. I could not even get the SECRET URLs to be setup.
Also, is there a way to allow the user to setup secret URLs without allowing them to just make pages public?
20 November 2013, 2:39 PM
Public pages can also be disabled on a per-institution basis. So, if you're using institutions, check the settings for each of those to make sure they don't have public pages disabled.
If that doesn't work, you could also check that it's not being overridden in your config.php file (look for a setting of "allowpublicviews").
There's currently no separation between permission to create secret URLs and permission to create public views. The reason being that if you can create a secret URL, you could just post that secret URL around and it'll let anyone view the page exactly the same as if it were public.
There is currently a feature request to make the public pages setting more selective though: https://bugs.launchpad.net/mahara/+bug/1251955
21 November 2013, 5:45 AM
I am also confused about the whole secret URL vs. public pages.
For example, I can see that a teacher just wants to create a page with the URL http:://mahara.org/user/teacher/science-goals and the url should very intuitive.
But with a student, if a person is registered to the system (such as a parent), a student's url should be obvious: http://mahara.org/user/student/my-work-of-the-week.
But if ,say grandma, wants to see the page, it should be secret URL.
Does the system distinguish between only allowing a page public access with secret URLs and true public access where the page can be view through an obvious URL that potentially could be guessed (if somebody knows how kids are naming pages).
Hope my question makes sense.
21 November 2013, 10:30 AM
You can set up human readable URLs for your pages with the help of the "Clean URL" feature: http://manual.mahara.org/en/1.8/administration/extensions.html#clean-urls
All pages wil then be human readable and can have a nice looking URL.
In addition, you have the Secret URL which is the odd looking URL that can't be guessed easily. Thus, a page can have both URLs: One for those who have access to the page via their login and having been granted access by the user, and the secret URL if you want to make your page public, but not appear in search engines.
21 November 2013, 11:29 AM
Hm, that's a good point, there are a couple of functional differences between a Public page, and a page with a secret URL:
1. The Public page's URL will be guessable (either by Clean URL, or by iterating through ID numbers in the standard URL)
2. The Public page may have automatic links generated to it in Mahara, like the "New Pages" block and the "Shared with me" page
3. If a page is not Public, we send a meta tag that prevents Google from spidering it.
So there could be a case for allowing one and not the other. It's not currently on our development road map, but we'd welcome a third-party patch for it. For anyone wanting to develop this, the starting point would be to look for all places in the code that reference the config variable 'allowpublicviews'.
If you just wanted to do a quick-and-dirty hack to prevent new Public pages from being created, you could edit htdocs/lib/form/elements/viewacl.php, adding $public = false; on line 38. That would eliminate the "Public" option from the access control UI.