1<?php
2/**
3 * Configuration for mybb. Password checking is done in SQL
4 *
5 * mybb stores additional group ids in a commaseparated list of mybb_users.addtionalgroups This
6 * is currently not supported in the setup below. If someone can come up with a clever config for
7 * that PRs would be welcome.
8 */
9/** @noinspection SqlResolve */
10$data = array(
11    'passcrypt' => 'sha1',
12    'conf' => array(
13        'select-user' => '
14            SELECT uid,
15                   username AS user,
16                   username AS name,
17                   email AS mail
18              FROM mybb_users
19             WHERE username = :user
20        ',
21        'check-pass' => '
22            SELECT uid
23              FROM mybb_users
24             WHERE username = :user
25               AND password = MD5(CONCAT(MD5(salt), MD5(:clear)))
26        ',
27        'select-user-groups' => '
28            SELECT UG.title AS `group`,
29                   UG.gid
30              FROM mybb_usergroups UG,
31                   mybb_users U
32             WHERE U.usergroup = UG.gid
33               AND U.uid = :uid
34        ',
35        'select-groups' => '
36            SELECT gid, title AS `group`
37              FROM mybb_usergroups
38        ',
39        'insert-user' => '
40            SET @salt = LEFT(UUID(), 10);
41            INSERT INTO mybb_users
42                   (username, email, salt, password, regdate)
43            VALUES (:user, :mail, @salt, MD5(CONCAT(MD5(@salt), MD5(:clear))), UNIX_TIMESTAMP() )
44        ',
45        'delete-user' => '
46            DELETE FROM mybb_users
47             WHERE uid = :uid
48        ',
49        'list-users' => '
50            SELECT U.username AS user
51             FROM mybb_usergroups UG,
52                   mybb_users U
53             WHERE U.usergroup = UG.gid
54               AND UG.title LIKE :group
55               AND U.username LIKE :user
56               AND U.username LIKE :name
57               AND U.email LIKE :mail
58          ORDER BY U.username
59             LIMIT :limit
60            OFFSET :start
61        ',
62        'count-users' => '
63            SELECT COUNT(U.username) AS `count`
64                 FROM mybb_usergroups UG,
65                       mybb_users U
66                 WHERE U.usergroup = UG.gid
67                   AND UG.title LIKE :group
68                   AND U.username LIKE :user
69                   AND U.username LIKE :name
70                   AND U.email LIKE :mail
71        ',
72        'update-user-info' => '
73            UPDATE mybb_users
74               SET email = :mail
75             WHERE uid = :uid
76        ', // we do not support changing the full name as that is the same as the login
77        'update-user-login' => '
78            UPDATE mybb_users
79               SET username = :newlogin
80             WHERE uid = :uid
81        ',
82        'update-user-pass' => '
83            SET @salt = LEFT(UUID(), 10);
84            UPDATE mybb_users
85               SET salt = @salt,
86                   password = MD5(CONCAT(MD5(@salt), MD5(:clear)))
87             WHERE uid = :uid
88        ',
89        'insert-group' => '
90            INSERT INTO mybb_usergroups (title)
91             VALUES (:group)
92        ',
93        'join-group' => '
94            UPDATE mybb_users
95               SET usergroup = :gid
96             WHERE uid = :uid
97        ',
98        'leave-group' => '', // makes probably no sense to implement
99    ),
100    'users' => array(
101        array(
102            'user' => 'Test One',
103            'pass' => 'fakepass',
104            'name' => 'Test One',
105            'mail' => 'no_one@nowhere.com',
106            'grps' =>
107                array(
108                    0 => 'Registered',
109                ),
110        ),
111        array(
112            'user' => 'Test Two',
113            'pass' => 'fakepass',
114            'name' => 'Test Two',
115            'mail' => 'no_one@nowhere.com',
116            'grps' =>
117                array(
118                    0 => 'Super Moderators',
119                ),
120        ),
121        array(
122            'user' => 'Test Three',
123            'pass' => 'fakepass',
124            'name' => 'Test Three',
125            'mail' => 'no_one@nowhere.com',
126            'grps' =>
127                array(
128                    0 => 'Administrators',
129                ),
130        ),
131        array(
132            'user' => 'Test Four',
133            'pass' => 'fakepass',
134            'name' => 'Test Four',
135            'mail' => 'no_one@nowhere.com',
136            'grps' =>
137                array(
138                    0 => 'Moderators',
139                ),
140        ),
141
142
143    ),
144);
145