Call for usecases around membership feature of subwikis

Hi everyone,

I’m opening this thread because I started to discuss a bit on the chat with the other developers about the membership feature of sub-wikis: the fact that you can configure a sub-wiki to allow users to join, or to request admin authorization for them to join etc. This feature is documented on https://extensions.xwiki.org/xwiki/bin/view/Extension/Wiki%20Application#HHowtojoinawiki.

We would be interested to know how this feature is actually used in real life: so it would be great if you could share your usages of that feature.
For a bit of context, we started to discuss it after discovering a bug around it: [XWIKI-20072] WikiUserManager#isMember is not reliable - XWiki.org JIRA.

1 Like

Hi surli, Hi all,

I came across the following use case in a project:

  1. All users are global and can be invited to join a subwiki by a subwiki admin or by a global admin.
  2. User profile pages are viewable only by users who belong to at least one common subwiki, and can be edited by the admins of the subwiki(s) they are member of.
  3. Each subwiki descriptor can be seen only from the subwiki members.
  4. On the main wiki, users can see the latest changes that occurred on the subwikis they’re member of.

The way I implemented the second item consisted in creating automatically two global groups on each subwiki creation: one MySubwikiAllGroup and one MySubwikiAdminGroup, and in adding those two as subgroups of the local XWikiAllGroup and XWikiAdminGroup (because rights on the main wiki can refer only to global groups or users). Currently checking if I can share as a snippet the code of the ServiceComponent implementing this use case in case it can be useful.

So it really feels like this membership feature and the capability to join a subwiki is actually confusing for people.
See: Why join a wiki, when the permissions are independient? and The need for Subwiki "join" and access rights

IMO we should really clarify the usecases for this feature, or drop it if there’s no real UC for it. Or only keep it in an extension.