README.md
1# authsqlite
2Authentication mechanism for DokuWiki that uses an SQLite database for
3its data store.
4
5This is heavily plagiarismed from authpgsql, because the two database
6engines support a similar SQL syntax.
7
8Configuration is similar to PostgreSQL. In addition to the configuration
9options for PostgreSQL, authsqlite allows the %{animal} parameter in all
10sql statements. %{animal} is the animal component of a wiki farm setup,
11and corresponds to the folder where the animal's configuration and data
12files live.
13
14This is the configuration for a farm, where a single authentication
15database contains all of the user information, but group membership is
16different for each animal.
17
18 $conf['plugin']['authsqlite']['checkPass'] =
19 'SELECT pass FROM usergroup AS ug
20 JOIN user AS u ON u.uid=ug.uid
21 JOIN groups AS g ON g.gid=ug.gid
22 WHERE u.login=\'%{user}\'
23 AND g.name=\'%{dgroup}\'';
24 $conf['plugin']['authsqlite']['getUserInfo'] =
25 'SELECT pass, fullname AS name, email AS mail
26 FROM user WHERE login=\'%{user}\'';
27 $conf['plugin']['authsqlite']['getGroups'] =
28 'SELECT g.name AS \'group\' FROM groups g, user u,
29 usergroup ug WHERE u.uid = ug.uid
30 AND ug.animal=\'%{animal}\'
31 AND g.gid = ug.gid AND u.login=\'%{user}\'';
32 $conf['plugin']['authsqlite']['getUsers'] =
33 'SELECT DISTINCT u.login AS user FROM user AS u
34 LEFT JOIN usergroup AS ug ON u.uid=ug.uid AND ug.animal=\'%{animal}\'
35 LEFT JOIN groups AS g ON ug.gid=g.gid';
36 $conf['plugin']['authsqlite']['FilterLogin'] = 'u.login LIKE \'%{user}\'';
37 $conf['plugin']['authsqlite']['FilterName'] = 'u.fullname LIKE \'%{name}\'';
38 $conf['plugin']['authsqlite']['FilterEmail'] = 'u.email LIKE \'%{email}\'';
39 $conf['plugin']['authsqlite']['FilterGroup'] = 'g.name LIKE \'%{group}\'';
40 $conf['plugin']['authsqlite']['SortOrder'] = 'ORDER BY u.login';
41 $conf['plugin']['authsqlite']['addUser'] =
42 'INSERT INTO user (login, pass, email, fullname)
43 VALUES (\'%{user}\', \'%{pass}\', \'%{email}\', \'%{name}\')';
44 $conf['plugin']['authsqlite']['addGroup'] =
45 'INSERT INTO groups (name) VALUES (\'%{group}\')';
46 $conf['plugin']['authsqlite']['addUserGroup'] =
47 'INSERT INTO usergroup (uid, gid, animal) VALUES (%{uid}, %{gid}, \'%{animal}\')';
48 $conf['plugin']['authsqlite']['delGroup'] = 'DELETE FROM groups WHERE gid=%{gid}';
49 $conf['plugin']['authsqlite']['getUserID'] =
50 'SELECT uid AS id FROM user WHERE login=\'%{user}\'';
51 $conf['plugin']['authsqlite']['delUser'] = 'DELETE FROM user WHERE uid=%{uid}';
52 $conf['plugin']['authsqlite']['delUserRefs'] = 'DELETE FROM usergroup WHERE uid=%{uid}';
53 $conf['plugin']['authsqlite']['updateUser'] = 'UPDATE user SET';
54 $conf['plugin']['authsqlite']['UpdateLogin'] = 'login=\'%{user}\'';
55 $conf['plugin']['authsqlite']['UpdatePass'] = 'pass=\'%{pass}\'';
56 $conf['plugin']['authsqlite']['UpdateEmail'] = 'email=\'%{email}\'';
57 $conf['plugin']['authsqlite']['UpdateName'] = 'fullname=\'%{name}\'';
58 $conf['plugin']['authsqlite']['UpdateTarget'] = 'WHERE uid=%{uid}';
59 $conf['plugin']['authsqlite']['delUserGroup'] =
60 'DELETE from usergroup WHERE uid=%{uid} AND gid=%{gid} AND animal=\'%{animal}\'';
61