How do I automatically activate my WebPreferences page?

I’m programmatically creating homepage for each user under /bin/view/Users/, e.g /bin/view/Users/Sarfaraz_Nawaz/ which also has a subpage /bin/view/Users/Sarfaraz_Nawaz/WebPreferences where I set edit,admin rights for the user. However, this is listed as normal in the left panel:

First of all, WebPreferences is not expected to be listed there at all. It is supposed to be invisible.

Second, on clicking, it goes to the page bin/view/Users/Sarfaraz_Nawaz/WebPreferences which shows this:

That is NOT expected. But when I go to Administer Page from the trippet-dot menu, it shows what I had expected:

And the URL also changes to /bin/admin/Users/User_Name/WebPreferences (please notice admin instead of view), though the breadcrumb doesn’t change (which is okay). Apart from that, WebPreferences also disappears from the listing on the left panel.

I dont want my users to go to Administer Page to make it correct, because if it is listed there, they’ll probably click on this and get surprised on finding that it does not show the administer page!

How do I fix this problem?

First you should make sure that the WebPreferences page you create is terminal and not nested. See https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/ContentOrganization/#HTerminology . Then, you should mark the page as hidden from the edit mode (or when creating it).

1 Like