tags:

views:

426

answers:

11

Problem

At work we have a department wiki (running Mediawiki). Unfortunately several persons edit without logging in, and that makes it very difficult to track down editors to ask questions about the content.

There are two strategies to improve this

  • encourage logged in editing
  • discourage anonymous editing.

Encouraging

For this part, any tips are welcome. But of course there is always risks involved in rewarding behaviours.

Discourage

I know that this must be kept low or else it will discourage any editing. But something just slightly annoying would be nice to have.

[update] I know it is possible to just disallow anonymous editing, but that will put a high barrier to any first time contribution (especially for people outside our department!), so I do not think that is an option. [/update]

[update2] Using LDAP or Active Directory does not solve the problem since the wiki is also accessible and used by external contractors. [/update2]

[update3] I am no longer working for this company. That does not mean that I completely have lost interest in this question, but from my current interest point the most valuable part is the "Did you forget to log in?" part below, and I will accept answers based on this part of the question. [/update3]

Confirmation

One thought was to have an additional confirmation step for anonymous users - "Are you really sure you want to submit this anonymously?", although with such a question there is a risk that people will give up or resist editing. However, if that question is re-phrased in a more diplomatic way as "Did you forget to log in?" I think it will appear as much more acceptable. And besides that will also capture those situations where the author did in fact forget to log in, but actually would want to have his/her contributions credited his/her user. This last point is by itself a good enough reason for wanting it.

Is this possible?

Delay

Another thought for something to be slightly annoying is to add an extra forced delay after "save page" displaying something like "If you had logged in you would not have to wait x seconds". Selecting a right x is difficult because if it is to high it will be a barrier and if it too low might not make any difference. But then I started thinking, what about starting at zero and then add one second delay for each anonymous edit by a given IP address in a given time frame? That way there will be no barrier for starting to use the wiki, and by the time the delay is getting significant the user has already contributed a lot so I think the outcome is much more likely to be that the editor eventually creates a user rather than giving up. This assumes IP addresses are rather static, but that is very typically is the case in a business network.

Is this possible?

+12  A: 

You can Turn off Anonymous Editing in Mediawiki like so:

  • Edit LocalSettings.php and add the following setting:

    $wgDisableAnonEdit = true;
    
  • Edit includes/SkinTemplate.php, find $fname-edit and change the code to look like this (i.e., basically wrap the following code between the wfProfileIn() and wfProfileOut() functions):

    wfProfileIn( "$fname-edit" );
    global $wgDisableAnonEdit;
    if ( $wgUser->mId || !$wgDisableAnonEdit) {
    // Leave this as is
    }
    wfProfileOut( "$fname-edit" );

Next, you may want to disable the [Edit] links on sections. To do this, open includes/Skin.php and search for editsection. You will see something like:

if (!$wgUser->getOption( 'editsection' ) ) {

Change that to:

global $wgDisableAnonEdit;
if (!$wgUser->getOption( 'editsection' ) || !$wgDisableAnonEdit ) {

Section editing is now blocked for anonymous users.

George Stocker
How is it I get voted down, but another person posts the same thing and gets voted up?
George Stocker
Handy, thanks, might need this for our install :)
JeeBee
I voted you up. I did the exact same thing with a MediaWiki installation I administered a couple of years ago. Anonymity does no one any good in a company wiki. Well, unless it is called ComplaintWiki ;-)
Jason Jackson
Ohh. Complaint Wiki. With Festivus being around the corner, it's time for the Airing of Grievances!
George Stocker
I also did this on company Mediawiki long ago and found it a good solution. I did *not* have to touch any PHP files though (apart from LocalSettings.php)
Jonik
+2  A: 

I think you should discourage anonymous edits by forbidding them - it's an internal wiki, after all.

The flipside is you must make the login process as easy as possible. Hopefully you can configure the login cookie to have a decent length (like 1 month) so they only need to login once per month.

Roddy
A: 

You said this is in a departmental situation. Can't you add a feature to the wiki where it makes an educated guess as to who is editing based on the IP address, and annotates the edit accordingly?

Tim Farley
+3  A: 

Play to the people's egos, and add a rep system kind of like here. Just make a widget for the home page that shows the number of edits made by the top 5 users or something. Give the top 1 or 2 users a MVP reward at regular (monthly?) intervals.

joshperry
+1  A: 

Make sure users don't get logged out if they look away from the screen or sneeze or scratch their head. You want long, persistent, sessions. Once logged in, stay logged in.

That's the problem with the MediaWiki our company is using internally - you log in, do stuff, then come back later and it logged you out, but the notification of not being logged in anymore is so insignificant on the screen that the user never notices.

JeeBee
+4  A: 

Forbid anonymous editing and let people log in using their domain logins (LDAP). Often the threshold is the registering of a new user and making up username and password and such.

PEZ
+2  A: 

If this runs within an internal network, you could pull Active Directory information so that no one has to log in, ever. That's how I do it at work. That is, if they are logged into their windows machine, then my webapps can pick up their username and associate that (or their userid) with their edits.

I don't know if this would be easy to add to MediaWiki, though.

EndangeredMassa
+1  A: 

SO has an extremely low barrier for posting. You could allow people to specify their name when making an edit. When they are ready, they can finally log in to avoid having to type their name all the time.

Albert
+1  A: 

Well, I doubt that this solution will be valuable for hlovdal, given that this question is now two months old, but maybe somebody else will find it useful:

The optimum solution to this problem is to enable automatic logins. This requires two steps. First, you need to add automatic authentication to your web service. Right now, we're using Apache with the Debian usn-libapache2-authenntlm-perl package on our internal application server*. (Our network is Active Directory and, obviously, the server runs on Debian Linux.) Second, you need a MediaWiki extension that makes MediaWiki aware of the web service's authentication. I've used the Automatic REMOTE_USER Authentication module successfully on an Apache web server that was tied into our network via an NTLM authentication module, but I do recall that it required a bit of massaging the code to make it work:

  • I had to follow the "horrid hacks" given on the extension's page, changing the setPassword() and addUser() functions to always return true instead of always returning false.
  • Since Active Directory is case-insensitive and MediaWiki isn't, I replaced both instances of the statement $username = $_SERVER['REMOTE_USER'] with $username = getCanonicalName($_SERVER['REMOTE_USER']).
  • Since I wanted to only allow certain people within the company to use our wiki, I set autoCreate() to always return false. It doesn't sound as if you need to worry about this, so you should leave autoCreate() at always returning true, which means that anybody on your company network will be able to access the wiki.

The nifty thing about this solution is that nobody has to log in into the wiki, ever; they simply go to a wiki page and they are logged in under their network ID.

* We just switched to this from a Red Hat server that was using mod_ntlm. Unfortunately, mod_ntlm hasn't been updated in a while and it's been starting to sporadically fail. I mention this because I've started to stumble on a performance issue with our current MediaWiki configuration that may require further code massaging....

DLJessup
+1  A: 

I'd recommend checking out wikipatterns.org - a great site about the social aspects of wikis

Kevin Davis
+2  A: 

Explicitly using some form of directory service (LDAP) would probably be a good idea, so that your users are always fully identified. On the other hand, wikis are subject to their own dynamics, in fact some wikis are so successful because they can be anonymously edited, so that's another thing to keep in mind.

Apart from that, personally I'd try to create some sort of incentive for users to contribute openly and identifiable: this could be based on a point/score system so that there are stats shown for all users who have contributed to the wiki each day, this could possibly even create some sort of competition.

Likewise, the wiki could by default not show any anonymously contributed contents without them being reviewed first, which would be another incentive for users to contribute openly.

none