phpBB
Statistics
| Revision:

root / tags / milestone_3 / phpBB / develop / add_permissions.php

History | View | Annotate | Download (11.5 kB)

1 5021 acydburn
<?php
2 5021 acydburn
// -------------------------------------------------------------
3 5021 acydburn
//
4 5021 acydburn
// $Id$
5 5021 acydburn
//
6 5021 acydburn
// FILENAME  : add_permissions.php
7 5021 acydburn
// STARTED   : Sat Nov 06, 2004
8 5021 acydburn
// COPYRIGHT : © 2004 phpBB Group
9 5021 acydburn
// WWW       : http://www.phpbb.com/
10 5021 acydburn
// LICENCE   : GPL vs2.0 [ see /docs/COPYING ]
11 5021 acydburn
//
12 5021 acydburn
// -------------------------------------------------------------
13 5021 acydburn
14 5021 acydburn
//
15 5021 acydburn
// Security message:
16 5021 acydburn
//
17 5021 acydburn
// This script is potentially dangerous.
18 5021 acydburn
// Remove or comment the next line (die(".... ) to enable this script.
19 5021 acydburn
// Do NOT FORGET to either remove this script or disable it after you have used it.
20 5021 acydburn
//
21 5021 acydburn
die("Please read the first lines of this script for instructions on how to enable it");
22 5021 acydburn
23 5021 acydburn
24 5021 acydburn
// This script adds missing permissions
25 5021 acydburn
$db = $dbhost = $dbuser = $dbpasswd = $dbport = $dbname = '';
26 5021 acydburn
27 5021 acydburn
define('IN_PHPBB', 1);
28 5021 acydburn
define('ANONYMOUS', 1);
29 5021 acydburn
$phpEx = substr(strrchr(__FILE__, '.'), 1);
30 5021 acydburn
$phpbb_root_path='./../';
31 5021 acydburn
include($phpbb_root_path . 'config.'.$phpEx);
32 5021 acydburn
require($phpbb_root_path . 'includes/acm/acm_' . $acm_type . '.'.$phpEx);
33 5021 acydburn
require($phpbb_root_path . 'includes/db/' . $dbms . '.'.$phpEx);
34 5021 acydburn
include($phpbb_root_path . 'includes/functions.'.$phpEx);
35 5021 acydburn
36 5021 acydburn
define('ACL_NO', 0);
37 5021 acydburn
define('ACL_YES', 1);
38 5021 acydburn
define('ACL_UNSET', -1);
39 5021 acydburn
40 5021 acydburn
define('ACL_GROUPS_TABLE', $table_prefix.'auth_groups');
41 5021 acydburn
define('ACL_OPTIONS_TABLE', $table_prefix.'auth_options');
42 5021 acydburn
define('ACL_USERS_TABLE', $table_prefix.'auth_users');
43 5021 acydburn
define('GROUPS_TABLE', $table_prefix.'groups');
44 5021 acydburn
define('USERS_TABLE', $table_prefix.'users');
45 5021 acydburn
46 5021 acydburn
$cache                = new acm();
47 5021 acydburn
$db                        = new sql_db();
48 5021 acydburn
49 5021 acydburn
// Connect to DB
50 5021 acydburn
$db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false);
51 5021 acydburn
52 5021 acydburn
// auth => is_local, is_global
53 5021 acydburn
$f_permissions = array(
54 5021 acydburn
        'f_'                => array(1, 0),
55 5021 acydburn
        'f_list'        => array(1, 0),
56 5021 acydburn
        'f_read'        => array(1, 0),
57 5021 acydburn
        'f_post'        => array(1, 0),
58 5021 acydburn
        'f_reply'        => array(1, 0),
59 5021 acydburn
        'f_quote'        => array(1, 0),
60 5021 acydburn
        'f_edit'        => array(1, 0),
61 5021 acydburn
        'f_user_lock'        => array(1, 0),
62 5021 acydburn
        'f_delete'        => array(1, 0),
63 5021 acydburn
        'f_bump'        => array(1, 0),
64 5021 acydburn
        'f_poll'        => array(1, 0),
65 5021 acydburn
        'f_vote'        => array(1, 0),
66 5021 acydburn
        'f_votechg'        => array(1, 0),
67 5021 acydburn
        'f_announce'=> array(1, 0),
68 5021 acydburn
        'f_sticky'        => array(1, 0),
69 5021 acydburn
        'f_attach'        => array(1, 0),
70 5021 acydburn
        'f_download'=> array(1, 0),
71 5021 acydburn
        'f_icons'        => array(1, 0),
72 5021 acydburn
        'f_html'        => array(1, 0),
73 5021 acydburn
        'f_bbcode'        => array(1, 0),
74 5021 acydburn
        'f_smilies'        => array(1, 0),
75 5021 acydburn
        'f_img'                => array(1, 0),
76 5021 acydburn
        'f_flash'        => array(1, 0),
77 5021 acydburn
        'f_sigs'        => array(1, 0),
78 5021 acydburn
        'f_search'        => array(1, 0),
79 5021 acydburn
        'f_email'        => array(1, 0),
80 5021 acydburn
        'f_rate'        => array(1, 0),
81 5021 acydburn
        'f_print'        => array(1, 0),
82 5021 acydburn
        'f_ignoreflood'        => array(1, 0),
83 5021 acydburn
        'f_postcount'        => array(1, 0),
84 5021 acydburn
        'f_moderate'=> array(1, 0),
85 5021 acydburn
        'f_report'        => array(1, 0),
86 5021 acydburn
        'f_subscribe'        => array(1, 0),
87 5021 acydburn
);
88 5021 acydburn
89 5021 acydburn
$m_permissions = array(
90 5021 acydburn
        'm_'                => array(1, 1),
91 5021 acydburn
        'm_edit'        => array(1, 1),
92 5021 acydburn
        'm_delete'        => array(1, 1),
93 5021 acydburn
        'm_move'        => array(1, 1),
94 5021 acydburn
        'm_lock'        => array(1, 1),
95 5021 acydburn
        'm_split'        => array(1, 1),
96 5021 acydburn
        'm_merge'        => array(1, 1),
97 5021 acydburn
        'm_approve'        => array(1, 1),
98 5021 acydburn
        'm_unrate'        => array(1, 1),
99 5021 acydburn
        'm_auth'        => array(1, 1),
100 5021 acydburn
        'm_ip'                => array(1, 1),
101 5021 acydburn
        'm_info'        => array(1, 1),
102 5021 acydburn
);
103 5021 acydburn
104 5021 acydburn
$a_permissions = array(
105 5021 acydburn
        'a_'                => array(0, 1),
106 5021 acydburn
        'a_server'        => array(0, 1),
107 5021 acydburn
        'a_defaults'=> array(0, 1),
108 5021 acydburn
        'a_board'        => array(0, 1),
109 5021 acydburn
        'a_cookies'        => array(0, 1),
110 5021 acydburn
        'a_clearlogs'        => array(0, 1),
111 5021 acydburn
        'a_words'        => array(0, 1),
112 5021 acydburn
        'a_icons'        => array(0, 1),
113 5021 acydburn
        'a_bbcode'        => array(0, 1),
114 5021 acydburn
        'a_attach'        => array(0, 1),
115 5021 acydburn
        'a_email'        => array(0, 1),
116 5021 acydburn
        'a_styles'        => array(0, 1),
117 5021 acydburn
        'a_user'        => array(0, 1),
118 5021 acydburn
        'a_useradd'        => array(0, 1),
119 5021 acydburn
        'a_userdel'        => array(0, 1),
120 5021 acydburn
        'a_ranks'        => array(0, 1),
121 5021 acydburn
        'a_ban'                => array(0, 1),
122 5021 acydburn
        'a_names'        => array(0, 1),
123 5021 acydburn
        'a_group'        => array(0, 1),
124 5021 acydburn
        'a_groupadd'=> array(0, 1),
125 5021 acydburn
        'a_groupdel'=> array(0, 1),
126 5021 acydburn
        'a_forum'        => array(0, 1),
127 5021 acydburn
        'a_forumadd'=> array(0, 1),
128 5021 acydburn
        'a_forumdel'=> array(0, 1),
129 5021 acydburn
        'a_prune'        => array(0, 1),
130 5021 acydburn
        'a_auth'        => array(0, 1),
131 5021 acydburn
        'a_authmods'=> array(0, 1),
132 5021 acydburn
        'a_authadmins'        => array(0, 1),
133 5021 acydburn
        'a_authusers'        => array(0, 1),
134 5021 acydburn
        'a_authgroups'        => array(0, 1),
135 5021 acydburn
        'a_authdeps'=> array(0, 1),
136 5021 acydburn
        'a_backup'        => array(0, 1),
137 5021 acydburn
        'a_restore'        => array(0, 1),
138 5021 acydburn
        'a_search'        => array(0, 1),
139 5021 acydburn
        'a_events'        => array(0, 1),
140 5021 acydburn
        'a_cron'        => array(0, 1),
141 5021 acydburn
);
142 5021 acydburn
143 5021 acydburn
$u_permissions = array(
144 5021 acydburn
        'u_'                        => array(0, 1),
145 5021 acydburn
        'u_sendemail'        => array(0, 1),
146 5021 acydburn
        'u_readpm'                => array(0, 1),
147 5021 acydburn
        'u_sendpm'                => array(0, 1),
148 5021 acydburn
        'u_sendim'                => array(0, 1),
149 5021 acydburn
        'u_hideonline'        => array(0, 1),
150 5021 acydburn
        'u_viewonline'        => array(0, 1),
151 5021 acydburn
        'u_viewprofile'        => array(0, 1),
152 5021 acydburn
        'u_chgavatar'        => array(0, 1),
153 5021 acydburn
        'u_chggrp'                => array(0, 1),
154 5021 acydburn
        'u_chgemail'        => array(0, 1),
155 5021 acydburn
        'u_chgname'                => array(0, 1),
156 5021 acydburn
        'u_chgpasswd'        => array(0, 1),
157 5021 acydburn
        'u_chgcensors'        => array(0, 1),
158 5021 acydburn
        'u_search'                => array(0, 1),
159 5021 acydburn
        'u_savedrafts'        => array(0, 1),
160 5021 acydburn
        'u_download'        => array(0, 1),
161 5021 acydburn
        'u_attach'                => array(0, 1),
162 5021 acydburn
        'u_sig'                        => array(0, 1),
163 5021 acydburn
        'u_pm_attach'        => array(0, 1),
164 5021 acydburn
        'u_pm_html'                => array(0, 1),
165 5021 acydburn
        'u_pm_bbcode'        => array(0, 1),
166 5021 acydburn
        'u_pm_smilies'        => array(0, 1),
167 5021 acydburn
        'u_pm_download'        => array(0, 1),
168 5021 acydburn
        'u_pm_report'        => array(0, 1),
169 5021 acydburn
        'u_pm_edit'                => array(0, 1),
170 5021 acydburn
        'u_pm_printpm'        => array(0, 1),
171 5021 acydburn
        'u_pm_emailpm'        => array(0, 1),
172 5021 acydburn
        'u_pm_forward'        => array(0, 1),
173 5021 acydburn
        'u_pm_delete'        => array(0, 1),
174 5021 acydburn
        'u_pm_img'                => array(0, 1),
175 5021 acydburn
        'u_pm_flash'        => array(0, 1),
176 5021 acydburn
);
177 5021 acydburn
178 5021 acydburn
echo "<p><b>Determining existing permissions</b></p>\n";
179 5021 acydburn
180 5071 acydburn
$sql = 'SELECT auth_option_id, auth_option FROM ' . ACL_OPTIONS_TABLE;
181 5021 acydburn
$result = $db->sql_query($sql);
182 5021 acydburn
183 5071 acydburn
$remove_auth_options = array();
184 5021 acydburn
while ($row = $db->sql_fetchrow($result))
185 5021 acydburn
{
186 5071 acydburn
        if (!in_array($row['auth_option'], array_keys(${substr($row['auth_option'], 0, 2) . 'permissions'})))
187 5071 acydburn
        {
188 5071 acydburn
                $remove_auth_options[$row['auth_option']] = $row['auth_option_id'];
189 5071 acydburn
        }
190 5021 acydburn
        unset(${substr($row['auth_option'], 0, 2) . 'permissions'}[$row['auth_option']]);
191 5021 acydburn
}
192 5021 acydburn
$db->sql_freeresult($result);
193 5021 acydburn
194 5071 acydburn
if (sizeof($remove_auth_options))
195 5071 acydburn
{
196 5071 acydburn
        $db->sql_query('DELETE FROM ' . ACL_USERS_TABLE . ' WHERE auth_option_id IN (' . implode(', ', $remove_auth_options) . ')');
197 5071 acydburn
        $db->sql_query('DELETE FROM ' . ACL_GROUPS_TABLE . ' WHERE auth_option_id IN (' . implode(', ', $remove_auth_options) . ')');
198 5071 acydburn
        $db->sql_query('DELETE FROM ' . ACL_OPTIONS_TABLE . ' WHERE auth_option_id IN (' . implode(', ', $remove_auth_options) . ')');
199 5071 acydburn
200 5071 acydburn
        echo '<p><b>Removed the following auth options... [<i>' . implode(', ', array_keys($remove_auth_options)) . "</i>]</b></p>\n\n";
201 5071 acydburn
}
202 5071 acydburn
203 5021 acydburn
$prefixes = array('f_', 'a_', 'm_', 'u_');
204 5021 acydburn
205 5021 acydburn
foreach ($prefixes as $prefix)
206 5021 acydburn
{
207 5021 acydburn
        $var = $prefix . 'permissions';
208 5021 acydburn
        if (sizeof($$var))
209 5021 acydburn
        {
210 5021 acydburn
                foreach ($$var as $auth_option => $l_ary)
211 5021 acydburn
                {
212 5021 acydburn
                        $sql_ary = array(
213 5021 acydburn
                                'auth_option'        => $auth_option,
214 5021 acydburn
                                'is_local'                => $l_ary[0],
215 5021 acydburn
                                'is_global'                => $l_ary[1]
216 5021 acydburn
                        );
217 5021 acydburn
218 5021 acydburn
                        $db->sql_query('INSERT INTO ' . ACL_OPTIONS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
219 5021 acydburn
220 5021 acydburn
                        echo "<p><b>Adding $auth_option...</b></p>\n";
221 5021 acydburn
222 5021 acydburn
                        mass_auth('group', 0, 'guests', $auth_option, ACL_NO);
223 5021 acydburn
                        mass_auth('group', 0, 'inactive', $auth_option, ACL_NO);
224 5021 acydburn
                        mass_auth('group', 0, 'inactive_coppa', $auth_option, ACL_NO);
225 5021 acydburn
                        mass_auth('group', 0, 'registered_coppa', $auth_option, ACL_NO);
226 5021 acydburn
                        mass_auth('group', 0, 'registered', $auth_option, (($prefix != 'm_' && $prefix != 'a_') ? ACL_YES : ACL_NO));
227 5021 acydburn
                        mass_auth('group', 0, 'super_moderators', $auth_option, (($prefix != 'a_') ? ACL_YES : ACL_NO));
228 5021 acydburn
                        mass_auth('group', 0, 'administrators', $auth_option, ACL_YES);
229 5021 acydburn
                        mass_auth('group', 0, 'bots', $auth_option, (($prefix != 'm_' && $prefix != 'a_') ? ACL_YES : ACL_NO));
230 5021 acydburn
                }
231 5021 acydburn
        }
232 5021 acydburn
}
233 5021 acydburn
234 5021 acydburn
$sql = 'UPDATE ' . USERS_TABLE . " SET user_permissions = ''";
235 5021 acydburn
$db->sql_query($sql);
236 5021 acydburn
237 5021 acydburn
$cache->destroy('acl_options');
238 5021 acydburn
$cache->save();
239 5021 acydburn
240 5021 acydburn
echo "<p><b>Done</b></p>\n";
241 5021 acydburn
242 5021 acydburn
/*
243 5021 acydburn
        $ug_type = user|group
244 5021 acydburn
        $forum_id = forum ids (array|int|0) -> 0 == all forums
245 5021 acydburn
        $ug_id = [int] user_id|group_id : [string] usergroup name
246 5021 acydburn
        $acl_list = [string] acl entry : [array] acl entries
247 5021 acydburn
        $setting = ACL_YES|ACL_NO|ACL_UNSET
248 5021 acydburn
*/
249 5021 acydburn
function mass_auth($ug_type, $forum_id, $ug_id, $acl_list, $setting)
250 5021 acydburn
{
251 5021 acydburn
        global $db;
252 5021 acydburn
        static $acl_option_ids, $group_ids;
253 5021 acydburn
254 5021 acydburn
        if ($ug_type == 'group' && is_string($ug_id))
255 5021 acydburn
        {
256 5021 acydburn
                if (!isset($group_ids[$ug_id]))
257 5021 acydburn
                {
258 5021 acydburn
                        $sql = 'SELECT group_id FROM ' . GROUPS_TABLE . "
259 5021 acydburn
                                WHERE group_name = '" . strtoupper($ug_id) . "'";
260 5021 acydburn
                        $result = $db->sql_query_limit($sql, 1);
261 5021 acydburn
                        $id = (int) $db->sql_fetchfield('group_id', 0, $result);
262 5021 acydburn
                        $db->sql_freeresult($result);
263 5021 acydburn
264 5021 acydburn
                        if (!$id)
265 5021 acydburn
                        {
266 5021 acydburn
                                return;
267 5021 acydburn
                        }
268 5021 acydburn
269 5021 acydburn
                        $group_ids[$ug_id] = $id;
270 5021 acydburn
                }
271 5021 acydburn
272 5021 acydburn
                $ug_id = (int) $group_ids[$ug_id];
273 5021 acydburn
        }
274 5021 acydburn
275 5021 acydburn
        // Build correct parameters
276 5021 acydburn
        $auth = array();
277 5021 acydburn
278 5021 acydburn
        if (!is_array($acl_list))
279 5021 acydburn
        {
280 5021 acydburn
                $auth = array($acl_list => $setting);
281 5021 acydburn
        }
282 5021 acydburn
        else
283 5021 acydburn
        {
284 5021 acydburn
                foreach ($acl_list as $auth_option)
285 5021 acydburn
                {
286 5021 acydburn
                        $auth[$auth_option] = $setting;
287 5021 acydburn
                }
288 5021 acydburn
        }
289 5021 acydburn
        unset($acl_list);
290 5021 acydburn
291 5021 acydburn
        if (!is_array($forum_id))
292 5021 acydburn
        {
293 5021 acydburn
                $forum_id = array($forum_id);
294 5021 acydburn
        }
295 5021 acydburn
296 5021 acydburn
        // Set any flags as required
297 5021 acydburn
        foreach ($auth as $auth_option => $acl_setting)
298 5021 acydburn
        {
299 5021 acydburn
                $flag = substr($auth_option, 0, strpos($auth_option, '_') + 1);
300 5021 acydburn
                if (empty($auth[$flag]))
301 5021 acydburn
                {
302 5021 acydburn
                        $auth[$flag] = $acl_setting;
303 5021 acydburn
                }
304 5021 acydburn
        }
305 5021 acydburn
306 5021 acydburn
        if (!is_array($acl_option_ids) || empty($acl_option_ids))
307 5021 acydburn
        {
308 5021 acydburn
                $sql = 'SELECT auth_option_id, auth_option
309 5021 acydburn
                        FROM ' . ACL_OPTIONS_TABLE;
310 5021 acydburn
                $result = $db->sql_query($sql);
311 5021 acydburn
312 5021 acydburn
                while ($row = $db->sql_fetchrow($result))
313 5021 acydburn
                {
314 5021 acydburn
                        $acl_option_ids[$row['auth_option']] = $row['auth_option_id'];
315 5021 acydburn
                }
316 5021 acydburn
                $db->sql_freeresult($result);
317 5021 acydburn
        }
318 5021 acydburn
319 5021 acydburn
        $sql_forum = 'AND a.forum_id IN (' . implode(', ', array_map('intval', $forum_id)) . ')';
320 5021 acydburn
321 5021 acydburn
        $sql = ($ug_type == 'user') ? 'SELECT o.auth_option_id, o.auth_option, a.forum_id, a.auth_setting FROM ' . ACL_USERS_TABLE . ' a, ' . ACL_OPTIONS_TABLE . " o WHERE a.auth_option_id = o.auth_option_id $sql_forum AND a.user_id = $ug_id" : 'SELECT o.auth_option_id, o.auth_option, a.forum_id, a.auth_setting FROM ' . ACL_GROUPS_TABLE . ' a, ' . ACL_OPTIONS_TABLE . " o WHERE a.auth_option_id = o.auth_option_id $sql_forum AND a.group_id = $ug_id";
322 5021 acydburn
        $result = $db->sql_query($sql);
323 5021 acydburn
324 5021 acydburn
        $cur_auth = array();
325 5021 acydburn
        while ($row = $db->sql_fetchrow($result))
326 5021 acydburn
        {
327 5021 acydburn
                $cur_auth[$row['forum_id']][$row['auth_option_id']] = $row['auth_setting'];
328 5021 acydburn
        }
329 5021 acydburn
        $db->sql_freeresult($result);
330 5021 acydburn
331 5021 acydburn
        $table = ($ug_type == 'user') ? ACL_USERS_TABLE : ACL_GROUPS_TABLE;
332 5021 acydburn
        $id_field  = $ug_type . '_id';
333 5021 acydburn
334 5021 acydburn
        $sql_ary = array();
335 5021 acydburn
        foreach ($forum_id as $forum)
336 5021 acydburn
        {
337 5021 acydburn
                foreach ($auth as $auth_option => $setting)
338 5021 acydburn
                {
339 5021 acydburn
                        $auth_option_id = $acl_option_ids[$auth_option];
340 5021 acydburn
341 5021 acydburn
                        if (!$auth_option_id)
342 5021 acydburn
                        {
343 5021 acydburn
                                continue;
344 5021 acydburn
                        }
345 5021 acydburn
346 5021 acydburn
                        switch ($setting)
347 5021 acydburn
                        {
348 5021 acydburn
                                case ACL_UNSET:
349 5021 acydburn
                                        if (isset($cur_auth[$forum][$auth_option_id]))
350 5021 acydburn
                                        {
351 5021 acydburn
                                                $sql_ary['delete'][] = "DELETE FROM $table
352 5021 acydburn
                                                        WHERE forum_id = $forum
353 5021 acydburn
                                                                AND auth_option_id = $auth_option_id
354 5021 acydburn
                                                                AND $id_field = $ug_id";
355 5021 acydburn
                                        }
356 5021 acydburn
                                        break;
357 5021 acydburn
358 5021 acydburn
                                default:
359 5021 acydburn
                                        if (!isset($cur_auth[$forum][$auth_option_id]))
360 5021 acydburn
                                        {
361 5021 acydburn
                                                $sql_ary['insert'][] = "$ug_id, $forum, $auth_option_id, $setting";
362 5021 acydburn
                                        }
363 5021 acydburn
                                        else if ($cur_auth[$forum][$auth_option_id] != $setting)
364 5021 acydburn
                                        {
365 5021 acydburn
                                                $sql_ary['update'][] = "UPDATE " . $table . "
366 5021 acydburn
                                                        SET auth_setting = $setting
367 5021 acydburn
                                                        WHERE $id_field = $ug_id
368 5021 acydburn
                                                                AND forum_id = $forum
369 5021 acydburn
                                                                AND auth_option_id = $auth_option_id";
370 5021 acydburn
                                        }
371 5021 acydburn
                        }
372 5021 acydburn
                }
373 5021 acydburn
        }
374 5021 acydburn
        unset($cur_auth);
375 5021 acydburn
376 5021 acydburn
        $sql = '';
377 5021 acydburn
        foreach ($sql_ary as $sql_type => $sql_subary)
378 5021 acydburn
        {
379 5021 acydburn
                switch ($sql_type)
380 5021 acydburn
                {
381 5021 acydburn
                        case 'insert':
382 5021 acydburn
                                switch (SQL_LAYER)
383 5021 acydburn
                                {
384 5021 acydburn
                                        case 'mysql':
385 5021 acydburn
                                        case 'mysql4':
386 5021 acydburn
                                                $sql = 'VALUES ' . implode(', ', preg_replace('#^(.*?)$#', '(\1)', $sql_subary));
387 5021 acydburn
                                                break;
388 5021 acydburn
389 5021 acydburn
                                        case 'mssql':
390 5021 acydburn
                                        case 'sqlite':
391 5021 acydburn
                                                $sql = implode(' UNION ALL ', preg_replace('#^(.*?)$#', 'SELECT \1', $sql_subary));
392 5021 acydburn
                                                break;
393 5021 acydburn
394 5021 acydburn
                                        default:
395 5021 acydburn
                                                foreach ($sql_subary as $sql)
396 5021 acydburn
                                                {
397 5021 acydburn
                                                        $sql = "INSERT INTO $table ($id_field, forum_id, auth_option_id, auth_setting) VALUES ($sql)";
398 5021 acydburn
                                                        $result = $db->sql_query($sql);
399 5021 acydburn
                                                        $sql = '';
400 5021 acydburn
                                                }
401 5021 acydburn
                                }
402 5021 acydburn
403 5021 acydburn
                                if ($sql != '')
404 5021 acydburn
                                {
405 5021 acydburn
                                        $sql = "INSERT INTO $table ($id_field, forum_id, auth_option_id, auth_setting) $sql";
406 5021 acydburn
                                        $result = $db->sql_query($sql);
407 5021 acydburn
                                }
408 5021 acydburn
                                break;
409 5021 acydburn
410 5021 acydburn
                        case 'update':
411 5021 acydburn
                        case 'delete':
412 5021 acydburn
                                foreach ($sql_subary as $sql)
413 5021 acydburn
                                {
414 5021 acydburn
                                        $result = $db->sql_query($sql);
415 5021 acydburn
                                        $sql = '';
416 5021 acydburn
                                }
417 5021 acydburn
                                break;
418 5021 acydburn
                }
419 5021 acydburn
                unset($sql_ary[$sql_type]);
420 5021 acydburn
        }
421 5021 acydburn
        unset($sql_ary);
422 5021 acydburn
423 5021 acydburn
}
424 5021 acydburn
425 5021 acydburn
?>