summaryrefslogtreecommitdiff
path: root/conf/mysql.conf.php.example
blob: 1c70e794e9e82f2bf4ac418ba6fe4f747afc157e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
/*
  This is an example configuration for the mysql auth module.

  This SQL statements are optimized for following table structure.
  If you use a different one you have to change them accordingly.
  See comments of every statement for details.

  TABLE users
      uid   login   pass   firstname   lastname   email
	  
  TABLE groups
      gid   name
	  
  TABLE usergroup
      uid   gid
  
  To use this configuration you have to copy them to local.php
  or at least include this file in local.php.
 */


/* Normally password encryptionis done by DokuWiki (recommended) but for
 * some reasons it might be usefull to let the database do the encryption.
 * Set 'encryptPass' to '1' and the cleartext password is forwarded to
 * the database, otherwise the encrypted one.
 */
$conf['auth']['mysql']['encryptPass'] = 0;

/* Multiple table operations will be protected by locks. This array tolds
 * the module which tables to lock. If you use any aliases for table names
 * these array must also contain these aliases. Any unamed alias will cause
 * a warning suring operation. See the example below.
 */
$conf['auth']['mysql']['TablesToLock']= array("users", "users AS u","groups", "groups AS g", "usergroup", "usergroup AS ug");

/* This statement should return the database index of a given user name.
 * The module will access the index with the name 'id' so a alias might be
 * necessary.
 * following patters will be replaced:
 *   %u    user name 
 */
$conf['auth']['mysql']['getUserID']   = "SELECT uid AS id FROM users WHERE login='%u'";

/* This statement should return the database index of a given group name.
 * The module will access the index with the name 'id' so a alias might be
 * necessary.
 * following patters will be replaced:
 *   %g    group name 
 */
$conf['auth']['mysql']['getGroupID']  = "SELECT gid AS id FROM groups WHERE name='%g'";

/* This statement is used to grant or deny access to the wiki. The result should
 * be a table with exact one line containing at least the password of the user.
 * If the result table is empty or contains more than one row, access will be denied.
 * The module access the password as 'pass' so a alias might be necessary.
 * following patters will be replaced:
 *   %u    user name
 *   %p    encrypted or clear text password (depends on 'encryptPass')
 *   %g    default group name 
 */
$conf['auth']['mysql']['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 login='%u'
                                         AND name='%g'";

$conf['auth']['mysql']['getGroups']   = "SELECT name as `group`
                                         FROM groups g, users u, usergroup ug
                                         WHERE u.uid = ug.uid
                                         AND g.gid = ug.gid
                                         AND u.login='%u'";
$conf['auth']['mysql']['getUserInfo'] = "SELECT pass, CONCAT(firstname,' ',lastname) AS name, email AS mail
                                         FROM users
                                         WHERE login='%u'";
$conf['auth']['mysql']['getUsers']    = "SELECT DISTINCT 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";

$conf['auth']['mysql']['SortOrder']   = "ORDER BY login";
$conf['auth']['mysql']['FilterLogin'] = "login LIKE '%s'";
$conf['auth']['mysql']['FilterName']  = "CONCAT(firstname,' ',lastname) LIKE '%s'";
$conf['auth']['mysql']['FilterEmail'] = "email LIKE '%s'";
$conf['auth']['mysql']['FilterGroup'] = "name LIKE '%s'";

$conf['auth']['mysql']['addUser']     = "INSERT INTO users
                                         (login, pass, email, firstname, lastname)
                                         VALUES ('%u', '%p', '%e',
                                         SUBSTRING_INDEX('%n',' ', 1),
                                         SUBSTRING_INDEX('%n',' ', -1))";
$conf['auth']['mysql']['delUser']     = "DELETE FROM users
                                         WHERE uid='%uid'";
$conf['auth']['mysql']['addGroup']    = "INSERT INTO groups (name)
                                         VALUES ('%g')";
$conf['auth']['mysql']['delGroup']    = "DELETE FROM groups
                                         WHERE gid='%gid'";
$conf['auth']['mysql']['addUserGroup']= "INSERT INTO usergroup (uid, gid)
                                         VALUES ('%uid', '%gid')";
$conf['auth']['mysql']['delUserGroup']= "DELETE FROM usergroup
                                         WHERE uid='%uid'
                                         AND gid='%gid'";
$conf['auth']['mysql']['delUserRefs'] = "DELETE FROM usergroup
                                         WHERE uid='%uid'";
?>