Personal Pages feature

Hi devs,

A long time ago Pascal Bastien asked for user spaces, i.e the ability to have private/personal pages in XWiki for the users. See [XWIKI-14705] Add the concept of user spaces - XWiki.org JIRA

This need has been raised again and I’ve started working on analysing it to see what we could provide.

I’ve put my first analysis at Personal Pages (Proposal.PersonalPages) - XWiki

My current preference is for proposal 3 there since the other 2 seem way too complex for now and raise a lot of questions.

I guess the big question is whether we agree that personal pages is to be considered an external app and not a built-in feature of the User Profile Application of XS?

WDYT?

Thanks

1 Like

There is a possible variation of 1 which does not imply to modify anything to the user profile page: the fact that the user profile is “terminal” is more a UI thing than a real technical thing. Having sub-pages under the user profile works fine, see for example Page1 (XWiki.org).

Thanks. Indeed I forgot that we can have a space with the same name as a document.

It’s maybe not as nice as a full real hierarchy but that could maybe work.

Now the main question still stands:

It makes sense as a standard feature for me.

Another, more general approach, would be to add a section on the create page UI to initialize the rights on the newly created page (perhaps similarly and consistent to what we do in the wiki creation page UI).

Possible options:

  • Visible to:
    • Default (inherit from parent page rights)
    • Only me
    • Only users: <list of users>
    • Only groups: <list of groups>
    • Anyone from this wiki
    • Anyone from wikis: <list of wikis>

This would not create a “dedicated space” for user pages, since, as you mentioned, that’s not very consistent with the “wiki way”. Additionally, we can always have a user profile section that lists all wiki pages (created by the current user or not) which are private and have the current user as (not necessarily the only) viewer. We could call that “My private pages”, or something like that.

IMO, such a solution would fit well enough both the currently described usecase but others as well and would bring more value to users on the long run, as it would work more on improving the usage of what already exists and not introducing new concenpts/features.

Hope this helps.

Thanks @Enygma for the idea. I find it interesting. There are some downsides though from what I see from the needs expressed:

  • I think Admins would like a dedicated location where users of the wiki can put personal pages, and not have private pages lying a bit everywhere.
  • It’s not directive enough and too complex to use. Users would need to be taught how to create personal pages. It’s more complex than having a dedicated UI for it.
  • It makes the Create Page UI more complex. We could imagine that setting rights would be an advanced use case and make it available only for advanced users but then that beats that idea… Note that setting rights when creating page is not more wiki-friendly than a personal space (I would even say it’s worse on that regard since it would make it easier for users to set permissions on pages when they create them… ;)).

So my opinion ATM is that while I see the reason you mentioned this idea (adding a new generic feature that can be interesting for other use cases, skip having to find a location for private pages), I think it would not fulfill fully the requirements I’ve seen, but I’d gladly accept that I’m wrong, so I’ll check with a stakeholder/user who expressed the need to see what he thinks.

Note: I’ve added your idea as proposal 4 on Personal Pages (Proposal.PersonalPages) - XWiki

Curious to know what others think.

Thx!

I like @Enygma idea and I’m wondering if this couldn’t be used also in a template provider. It would solve the first problem you raise:

In template provider you can specify specific locations restrictions. So we could imagine having a Personal page template having a location restriction and a right strategy.
Note that I’ve never really used the template provider with a location restriction, so maybe there’s usability bug to fix first on that side to guide the users on the location where they can put pages.

Yes, this is what I was suggesting too in proposal 3 but AFAICS it’s not possible since the space would be a user-specific location. See proposal 3 at Personal Pages (Proposal.PersonalPages) - XWiki and specifically this part:

* Provide a dedicated UI to create a new private note (a la FAQ app)
  * Ideally we would provide a "Private Notes" template to let users create private notes but we can't force creation of these pages inside a user-named space.
  * If the user-named space doesn't exist, create it and set the permission on it so that only the current user can access it
    * It's important to set the permission on the space and not the pages so that they can be later moved to public locations without having to force the user to manually change their permissions (see UC3)

What about the 2 points I raised:

  • The fact that it makes the create UI more complex
  • The fact that if the option is there, users will be more likely to use it and create permissions for pages they create (which goes in an anti-wiki direction).

Any opinion about this?

The way I was seeing it was to provide only a Personal page template by default, and only display the right scheme options for advanced users (like we display the box for terminal pages). So I don’t consider it makes the UI really more complex or that the feature would be used a lot more.

ok so I don’t think this is what Edy was suggesting initially.

So my opinion about it:

  • I’m ok with an advanced permission option, mostly because of the use case when you want to create a private page (vs creating a public page and then quickly setting permissions on it, in two steps).
  • For the template provider, I’d like that too but it’s not possible right now (see previous message). However, we could imagine implementing new features in the template provider, like the ability to associate some custom location restriction strategy + the ability to set permissions in the provider.