aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/convertors/functions_phpbb20.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2007-02-23 13:50:27 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2007-02-23 13:50:27 +0000
commite855a348e3bb762ed2afd01343123980c26e6d46 (patch)
tree321611ff71907583894a8605718ac7336ba4ff1b /phpBB/install/convertors/functions_phpbb20.php
parent85a4e318819d4322684e8ee17d030064e8987a6b (diff)
downloadforums-e855a348e3bb762ed2afd01343123980c26e6d46.tar
forums-e855a348e3bb762ed2afd01343123980c26e6d46.tar.gz
forums-e855a348e3bb762ed2afd01343123980c26e6d46.tar.bz2
forums-e855a348e3bb762ed2afd01343123980c26e6d46.tar.xz
forums-e855a348e3bb762ed2afd01343123980c26e6d46.zip
- fixed some convertor bugs
- adjusted forum standard access (+polls) role to include f_delete (no update, only new installations will have the change included) git-svn-id: file:///svn/phpbb/trunk@7040 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/install/convertors/functions_phpbb20.php')
-rw-r--r--phpBB/install/convertors/functions_phpbb20.php89
1 files changed, 59 insertions, 30 deletions
diff --git a/phpBB/install/convertors/functions_phpbb20.php b/phpBB/install/convertors/functions_phpbb20.php
index 2c53e5ccd1..598bb46a9a 100644
--- a/phpBB/install/convertors/functions_phpbb20.php
+++ b/phpBB/install/convertors/functions_phpbb20.php
@@ -456,6 +456,13 @@ function phpbb_user_id($user_id)
$id = (int) $src_db->sql_fetchfield('user_id');
$src_db->sql_freeresult($result);
+ // Try to get the maximum user id possible...
+ $sql = "SELECT MAX(user_id) AS max_user_id
+ FROM {$convert->src_table_prefix}users";
+ $result = $src_db->sql_query($sql);
+ $max_id = (int) $src_db->sql_fetchfield('max_user_id');
+ $src_db->sql_freeresult($result);
+
if ($convert->mysql_convert && $same_db)
{
$src_db->sql_query("SET NAMES 'utf8'");
@@ -464,8 +471,8 @@ function phpbb_user_id($user_id)
// If there is a user id 1, we need to increment user ids. :/
if ($id === 1)
{
- set_config('increment_user_id', 1, true);
- $config['increment_user_id'] = 1;
+ set_config('increment_user_id', ($max_id + 1), true);
+ $config['increment_user_id'] = $max_id + 1;
}
else
{
@@ -487,9 +494,9 @@ function phpbb_user_id($user_id)
return ANONYMOUS;
}
- if (!empty($config['increment_user_id']))
+ if (!empty($config['increment_user_id']) && $user_id == 1)
{
- $user_id++;
+ return $config['increment_user_id'];
}
return $user_id;
@@ -591,8 +598,8 @@ function phpbb_convert_authentication($mode)
// Add Forum Access List
$auth_map = array(
'auth_view' => array('f_', 'f_list'),
- 'auth_read' => 'f_read',
- 'auth_post' => array('f_post', 'f_bbcode', 'f_smilies', 'f_img', 'f_sigs', 'f_search', 'f_postcount'),
+ 'auth_read' => array('f_read', 'f_search'),
+ 'auth_post' => array('f_post', 'f_bbcode', 'f_smilies', 'f_img', 'f_sigs', 'f_postcount', 'f_report', 'f_subscribe', 'f_print', 'f_email'),
'auth_reply' => 'f_reply',
'auth_edit' => 'f_edit',
'auth_delete' => 'f_delete',
@@ -600,7 +607,7 @@ function phpbb_convert_authentication($mode)
'auth_vote' => 'f_vote',
'auth_announce' => 'f_announce',
'auth_sticky' => 'f_sticky',
- 'auth_attachments' => 'f_attach',
+ 'auth_attachments' => array('f_attach', 'f_download'),
'auth_download' => 'f_download',
);
@@ -705,18 +712,33 @@ function phpbb_convert_authentication($mode)
user_group_auth('registered', 'SELECT user_id, {REGISTERED} FROM ' . USERS_TABLE . ' WHERE user_id <> ' . ANONYMOUS, false);
// Selecting from old table
- $auth_sql = 'SELECT ';
- $auth_sql .= (!empty($config['increment_user_id'])) ? 'user_id + 1 as user_id' : 'user_id';
- $auth_sql .= ', {ADMINISTRATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1';
+ if (!empty($config['increment_user_id']))
+ {
+ $auth_sql = 'SELECT user_id, {ADMINISTRATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1 AND user_id <> 1';
+ user_group_auth('administrators', $auth_sql, true);
- user_group_auth('administrators', $auth_sql, true);
+ $auth_sql = 'SELECT ' . $config['increment_user_id'] . ' as user_id, {ADMINISTRATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1 AND user_id = 1';
+ user_group_auth('administrators', $auth_sql, true);
+ }
+ else
+ {
+ $auth_sql = 'SELECT user_id, {ADMINISTRATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1';
+ user_group_auth('administrators', $auth_sql, true);
+ }
- // Put administrators into global moderators group too...
- $auth_sql = 'SELECT ';
- $auth_sql .= (!empty($config['increment_user_id'])) ? 'user_id + 1 as user_id' : 'user_id';
- $auth_sql .= ', {GLOBAL_MODERATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1';
+ if (!empty($config['increment_user_id']))
+ {
+ $auth_sql = 'SELECT user_id, {GLOBAL_MODERATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1 AND user_id <> 1';
+ user_group_auth('global_moderators', $auth_sql, true);
- user_group_auth('global_moderators', $auth_sql, true);
+ $auth_sql = 'SELECT ' . $config['increment_user_id'] . ' as user_id, {GLOBAL_MODERATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1 AND user_id = 1';
+ user_group_auth('global_moderators', $auth_sql, true);
+ }
+ else
+ {
+ $auth_sql = 'SELECT user_id, {GLOBAL_MODERATORS} FROM ' . $convert->src_table_prefix . 'users WHERE user_level = 1';
+ user_group_auth('global_moderators', $auth_sql, true);
+ }
}
else if ($mode == 'first')
{
@@ -762,7 +784,7 @@ function phpbb_convert_authentication($mode)
// no break;
case 'registered_hidden':
- mass_auth('group_role', $new_forum_id, 'registered', 'FORUM_LIMITED_POLLS');
+ mass_auth('group_role', $new_forum_id, 'registered', 'FORUM_STANDARD_POLLS');
break;
case 'private':
@@ -980,25 +1002,32 @@ function phpbb_convert_authentication($mode)
if (sizeof($forum_ids))
{
// Now make sure the user is able to read these forums
- $hold_ary = $auth->acl_group_raw_data(get_group_id('guests'), 'f_list', $forum_ids);
+ $hold_ary = $auth->acl_group_raw_data(false, 'f_list', $forum_ids);
- if (!empty($hold_ary))
+ if (empty($hold_ary))
{
- mass_auth('group', $row['forum_id'], 'guests', 'f_list', ACL_YES);
- mass_auth('group', $row['forum_id'], 'registered', 'f_list', ACL_YES);
- mass_auth('group', $row['forum_id'], 'registered_coppa', 'f_list', ACL_YES);
- mass_auth('group', $row['forum_id'], 'bots', 'f_list', ACL_YES);
+ continue;
}
- else
+
+ foreach ($hold_ary as $g_id => $f_id_ary)
{
- // Now make sure the user is able to read these forums
- $hold_ary = $auth->acl_group_raw_data(get_group_id('registered'), 'f_list', $forum_ids);
+ $set_group = false;
+
+ foreach ($f_id_ary as $f_id => $auth_ary)
+ {
+ foreach ($auth_ary as $auth_option => $setting)
+ {
+ if ($setting == ACL_YES)
+ {
+ $set_group = true;
+ break 2;
+ }
+ }
+ }
- if (!empty($hold_ary))
+ if ($set_group)
{
- mass_auth('group', $row['forum_id'], 'registered', 'f_list', ACL_YES);
- mass_auth('group', $row['forum_id'], 'registered_coppa', 'f_list', ACL_YES);
- mass_auth('group', $row['forum_id'], 'bots', 'f_list', ACL_YES);
+ mass_auth('group', $row['forum_id'], $g_id, 'f_list', ACL_YES);
}
}
}