Share user accounts between several wikis (in a farm).
Global/local Problems
Some data needs to be per wiki some may/must be global. For lots of the preferences it is unclear whether they should be global or local. One possibility would be to allow the user to overwrite the global settings in a local wiki. An easy user interface is still wanted...
Preferences |
|
Preferred theme |
global but add <default theme> |
Everything else |
global |
General options |
|
Quick links |
use InterWiki |
Subscribed wiki pages |
use InterWiki |
Everthing else |
global |
Data |
|
Page trail |
use InterWiki |
Bookmark |
local |
Storage
Using an shared directory should be quite easy. The local data could be saved in one file per wiki, to avoid to much concurrent access (page trail) and to keep the data read small even for very large farms.
External Authentication
To integrate different authentication and user storages we need an API (MoinPAM). The idea is that the different auth and storage modules can be choosen in the config. It should work similar to PAM. The interface should provide the following functionality:
Authenticate: return User object or None
- Save user: return True if user was saved.
may be should be part of the user object?
- anything else?
So we could provide the following modules:
What if user doesn't exist?
- single modules could provide a user name
- global option "create user on access"?
- or per module configuration?
Auth modules
MoinMoin cookie
- login user, passwd
- Simple HTTP Auth (using one of the storages)
- custom LDAP, /etc/passwd, ... auth
- Unknown user (not logged in)
- Unknown user (not allowed to access) (do we need this?)
Storage
- local storage
- XMLRPC remote storage?