sample preload.php snippet
$http_host = $_SERVER['HTTP_HOST']; if( strpos( $http_host, ':' ) !== false ) { list( $http_host, $http_port ) = explode( ':', $http_host ); } $animal = str_replace( 'www.', '', $http_host ); $request_id = $_SERVER['REQUEST_URI']; require_once( $farmbasedir.'/conf/animal_alias.php' ); // normalizes animal names and stuff $farmdir = "$farmbasedir/domains/$animal/"; if( !$animal || !is_dir( $farmdir )) { $animal = $farmer; $farmdir = "$farmbasedir/domains/$animal/"; } if( !is_dir( $farmdir )) { die( 'nofarm' ); } define( 'FARMDIR', $farmdir ); if( !defined( 'DOKU_CONF' )) define( 'DOKU_CONF', DOKU_FARMDIR.'/'.$animal.'/conf/' ); if( !defined( 'ACL_DOM' )) define( 'ACL_DOM', $animal ); // for auth psql in .protected.php if( !defined( 'ACL_TOPDOM' )) define( 'ACL_TOPDOM', 'notomorrow.de' ); // for auth psql in .protected.php if( !defined( 'DOKU_CONF_DEFAULT' )) define( 'DOKU_CONF_DEFAULT', $farmbasedir.'/dokuwiki/conf/' ); if( !defined( 'DOKU_CONF' )) define( 'DOKU_CONF', $farmdir.'conf/' ); require_once( $farmbasedir.'/dokuwiki/inc/config_cascade.php' ); require_once( $farmbasedir.'/conf/cascade.php' );
sample farm.protected.php snippet
$conf['plugin']['authpgsql']['checkPass'] = "SELECT pass FROM usergroup AS ug JOIN users AS u ON u.uid=ug.uid JOIN groups AS g ON g.gid=ug.gid WHERE u.login='%{user}' AND g.name='%{dgroup}' AND ( u.domain='".ACL_DOM."' OR u.domain is null ) "; $conf['plugin']['authpgsql']['getUserInfo'] = "SELECT pass, fullname AS name, email AS mail FROM users WHERE lower(login)=lower('%{user}') AND ( domain='".ACL_DOM."' OR domain is null ) "; $conf['plugin']['authpgsql']['getGroups'] = "SELECT g.name as group FROM groups g, users u, usergroup ug WHERE u.uid = ug.uid AND g.gid = ug.gid AND u.login='%{user}' AND ( u.domain='".ACL_DOM."' OR u.domain is null ) "; $conf['plugin']['authpgsql']['getUsers'] = "SELECT DISTINCT u.login AS user FROM users AS u LEFT JOIN usergroup AS ug ON u.uid=ug.uid LEFT JOIN groups AS g ON ug.gid=g.gid WHERE ( u.domain='".ACL_DOM."' " .( ACL_TOPDOM ? 'OR u.domain in ( \'"'.implode( "','", explode( ',', ACL_TOPDOM )).'\' )' : '' ) #."OR u.domain is null" ." )"; $conf['plugin']['authpgsql']['FilterLogin'] = "u.login LIKE '%{user}'"; $conf['plugin']['authpgsql']['FilterName'] = "u.fullname LIKE '%{name}'"; $conf['plugin']['authpgsql']['FilterEmail'] = "u.email LIKE '%{email}'"; $conf['plugin']['authpgsql']['FilterGroup'] = "g.name LIKE '%{group}'"; $conf['plugin']['authpgsql']['SortOrder'] = "ORDER BY u.login"; $conf['plugin']['authpgsql']['addUser'] = "INSERT INTO users (login, pass, email, fullname, domain) VALUES ('%{user}', '%{pass}', '%{email}', '%{name}', '".ACL_DOM."')"; $conf['plugin']['authpgsql']['addGroup'] = "INSERT INTO groups (name) VALUES ('%{group}')"; $conf['plugin']['authpgsql']['addUserGroup']= "INSERT INTO usergroup (uid, gid) VALUES ('%{uid}', '%{gid}')"; $conf['plugin']['authpgsql']['delGroup'] = "DELETE FROM groups WHERE gid='%{gid}'"; $conf['plugin']['authpgsql']['getUserID'] = "SELECT uid AS id FROM users WHERE login='%{user}' AND ( domain='".ACL_DOM."' OR domain is null )"; $conf['plugin']['authpgsql']['getGroupID'] = "SELECT gid AS id FROM groups WHERE name='%{group}'"; $conf['plugin']['authpgsql']['delUser'] = "DELETE FROM users WHERE uid='%{uid}' AND ( domain='".ACL_DOM."' )"; $conf['plugin']['authpgsql']['delUserRefs'] = "DELETE FROM usergroup WHERE uid='%{uid}'"; $conf['plugin']['authpgsql']['updateUser'] = "UPDATE users SET"; $conf['plugin']['authpgsql']['UpdateLogin'] = "login='%{user}'"; $conf['plugin']['authpgsql']['UpdatePass'] = "pass='%{pass}'"; $conf['plugin']['authpgsql']['UpdateEmail'] = "email='%{email}'"; $conf['plugin']['authpgsql']['UpdateName'] = "fullname='%{name}'"; $conf['plugin']['authpgsql']['UpdateTarget']= "WHERE uid=%{uid}"; $conf['plugin']['authpgsql']['delUserGroup']= "DELETE FROM usergroup WHERE uid='%{uid}' AND gid='%{gid}'";