Mailing List Archive

User Groups
Hi all,

Apologies for asking about something that is un-Wiki-ish, and maybe a
FAQ (but I couldn't find answers in the archives).

I need a "collaborative publication site". I.e. there's a group of
(non-tech) people who want to collaboratively write a series of texts,
and they want the texts to be readable as they are being created and edited.
The writers actually form several groups, each of which is working on
one set of pages (people may be members of more than one group, and
pages may be writable for more than one group, i.e. there's no clear
hierarchical structure).
Finally, there's demand for "strictly internal" scratch pads, i.e. pages
that aren't even readable unless you're logged in as a member of a
specific group.

My idea was to have "user groups" in the wiki, and a per-page list of
groups that may read or write it.

The docs were of limited help. A remark somewhere in them reads "it's
possible to do your own permission scheme", but I found nothing that
supported that claim. In fact all the permission stuff that's in
Mediawiki seems to be hardcoded, at least a few quick greps indicated so.

My questions are:
How do I go ahead?
Are there better ways to achieve what we want?

I'm willing to do (limited) PHP coding, and I can change the database
schema at a whim.
(My primary profession is that of a software engineer, in case you
wonder ;-)... )

Regards,
Jo
Re: User Groups [ In reply to ]
Joachim Durchholz wrote:
> My idea was to have "user groups" in the wiki, and a per-page list of
> groups that may read or write it.
>
> The docs were of limited help. A remark somewhere in them reads "it's
> possible to do your own permission scheme", but I found nothing that
> supported that claim. In fact all the permission stuff that's in
> Mediawiki seems to be hardcoded, at least a few quick greps indicated so.

You can theoretically build a users/groups permissions scheme using the
user_rights and cur_restrictions fields (both are comma-separated sets
of text tokens and can be fairly arbitrarily extended), but as you
noticed this isn't supported by the current code which is hard-coded and
special-cased for a few values.

If you want to try this, start by rewriting Title::userCanEdit() and
Title::userCanRead(), which control write and read access to given
pages. You'd also need to add a more intelligent way to assign page
permissions & user privileges.

> My questions are:
> How do I go ahead?
> Are there better ways to achieve what we want?

Honestly, I'd recommend you just give all your users read/write
permission to all pages... If they change things they're not supposed to
it's recorded in the audit trail and incorrect changes can be easily
reverted.

-- brion vibber (brion @ pobox.com)
Re: User Groups [ In reply to ]
Quoting Joachim Durchholz, from the post of Wed, 30 Jun:
> Finally, there's demand for "strictly internal" scratch pads, i.e. pages
> that aren't even readable unless you're logged in as a member of a
> specific group.

as Brion mentioned, MediaWiki is built for openness, and will require
quite some tweaking. last time I looked at Twiki it seemed like a much
better platform for such permission schemes, give it a look.

--
Almost for real
Ira Abramov
http://ira.abramov.org/email/
Re: User Groups [ In reply to ]
Brion Vibber wrote:
> If you want to try this, start by rewriting Title::userCanEdit() and
> Title::userCanRead(), which control write and read access to given
> pages. You'd also need to add a more intelligent way to assign page
> permissions & user privileges.

Thanks.

>> My questions are: How do I go ahead? Are there better ways to
>> achieve what we want?
>
> Honestly, I'd recommend you just give all your users read/write
> permission to all pages... If they change things they're not supposed
> to it's recorded in the audit trail and incorrect changes can be
> easily reverted.

Ira Abramov wrote:
> as Brion mentioned, MediaWiki is built for openness, and will require
> quite some tweaking.

Well, I see user groups as a way to revert incorrect changes even before
they happen ;-)
I.e. user groups aren't dogma for me, they are just the first thing that
comes to my mind. If there's a better way to achieve the desired
behaviour, I'll gladly accept that.

It's just that I don't see that manual reversion is a viable
alternative. If the project is successful, it will have with several
hundred authors and several ten thousands of readers. Readers are
encouraged to drop comments (and the Discussion pages of Mediawiki are
perfect for that purpose), but they are definitely not supposed to alter
the texts proper (that's a requirement, and I'd need extremely strong
arguments to renegotiate that).

The "Wiki way" would be to allow changes and revert them if inappropriate.
It's just that this isn't going to be a "real Wiki". There are pages
that everybody is supposed to alter (such as Discussion pages, which are
perfect for purposes of the project), and there are author pages that
only the respective authors are supposed to alter. It's a somewhat
artistic project, and to remain artistic, the artists must be able to
say that "this-and-that page is what me and he and she and those wrote".

It's a kind of middle ground between a Wiki and a single-author WWW
site: not everybody is allowed to do everything (as would be in a Wiki),
and there's still a lot of collaboration going on.

I know that what I want is un-Wiki. It's just that the True Wiki Way is
at an oh-so-slight angle from what I need, and I'd like to have (or
pave) a road that suits both angles :-)

Ira Abramov wrote:
> last time I looked at Twiki it seemed like a much better platform for
> such permission schemes, give it a look.

Actually I was quite active in the TWiki community for a while :-)

The main thing that makes TWiki unsuitable for the current project is
that it's style is geared towards technical people. It's using CamlCase,
its syntax requires several pages of text, it allows entering arbitrary
HTML code (both a safety issue and a barrier against editing if a HTML
nonexpert tries to modify an thoroughly HTMLized page), and I dimly
remember the process of editing was geared to making techies comfortable.
Mediawiki is geared towards non-techies, and that's the perfect match
for more "artistic" projects like the forthcoming one.

I'm eager to hear additional advice and alternatives.

Regards,
Jo
Re: User Groups [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,
I would be VERY interested in such an "extension" of the current
Mediawiki, which makes fine-granulated user groups and collaborative,
but still controlled "Wiki editing" possible. Just let me know if you
need help for testing or "thinking" ;-).

Bye, Thommie
- --
- ---------------------------------------------------------------------
~ THOMAS M. ROTHER * n e t z w i s s e n * D-73728 Esslingen
~ F.R. Germany, European Union * mailto:t.rother@netzwissen.de
~ http://www.netzwissen.de * GPG Key from http://wwwkeys.de.pgp.net
~ Fingerprint B208 E204 4249 4635 19B9 B691 3E73 C8B9 1229 DE4C
- ---------------------------------------------------------------------

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFA/Se+PnPIuRIp3kwRAknxAJ9CLqXByAnF6RiIUJYkIv1odhqJHACdF4ZW
668oQAfKGnqitb6yOETLIAg=
=WErp
-----END PGP SIGNATURE-----