Foswiki has enough access controls to allow it to handle players and games. If you set it up properly, it works very well.
Step 1: Install Foswiki
Follow the installation instructions. Using CGI is easiest to set up, if you watch the gotcha I found with running bin/configure. FCGI is much faster, and works well once you install the extension, and if your host supports it. (Mine does!)
I have had a little trouble getting the Apache config right, and have had to make several changes to get it working in my webserver configuration. Make sure the virtual host is correct (not the default *), that the logs are as you want them, and to add a redirect for / to /foswiki/ if you want that.
Step 2: Configure Foswiki
Use the bin/configure script to configure Foswiki. Mostly this is paths and mail. Add the FastCGI if you want to use that.
Step 3: Add Admin Users
I like to create a user (or users) for administration and put them in the AdminGroup so they have full rights to everything. This is easier than using the special admin user. I like to create a “FirstnameAdmin” user – I’m LouAdmin, usually – for each administrator. Get the admin to create them and then use the magic ‘admin’ user to add them to the AdminGroup.
Step 4: Add Game Groups
For each game, you’ll want two groups. GamePlayers and GameGMs. Create them, using tools in Main/WikiGroups
Step 5: Add Users
Have the GM(s) and player(s) create accounts. Add them appropriately to the GM and Player groups for each game. The GMs does not have to be in the player group.
Step 6: Add Webs
Create a Web for GamePlayers and GameGMs. (System/ManagingWebs). Then, set each of those to be limited to the the correct groups. Go to the WebPreferences setting for each web (GamePlayers/WebPreferences, for example) and update ALLOWWEBVIEW to the appropriate groups. The Player web should have the players and the GMs, and the GMs should have only the GMs.
The GM web should look something like this:
- Set DENYWEBVIEW =
- Set ALLOWWEBVIEW = %USERSWEB%.GameGMsGroup, %USERSWEB%.AdminGroup
- Set DENYWEBCHANGE =
- Set ALLOWWEBCHANGE =
- Set DENYWEBRENAME =
- Set ALLOWWEBRENAME =
The Players web is the same, but includes the players in ALLOWWEBVIEW:
- Set ALLOWWEBVIEW = %USERSWEB%.GameGMsGroup, %USERSWEB%.GamePlayersGroup, %USERSWEB%.AdminGroup