1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-19 07:41:08 +01:00

- fixed a referencing problem with objects (PHP4/5 conflict)

- user_group_auth can take data from both target and source database


git-svn-id: file:///svn/phpbb/trunk@7002 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Nils Adermann 2007-02-17 14:14:56 +00:00
parent 0af3306ee4
commit b0d453098b
3 changed files with 24 additions and 10 deletions

View File

@ -1066,7 +1066,7 @@ function add_user_group($group_id, $user_id, $group_leader=false)
* @param string $group The name of the special group to add to
* @param string $select_query An SQL query to retrieve the user(s) to add to the group
*/
function user_group_auth($group, $select_query)
function user_group_auth($group, $select_query, $use_src_db)
{
global $convert, $phpbb_root_path, $config, $user, $db, $src_db, $same_db;
@ -1089,7 +1089,7 @@ function user_group_auth($group, $select_query)
return;
}
if ($same_db)
if ($same_db || !$use_src_db)
{
$sql = 'INSERT INTO ' . USER_GROUP_TABLE . ' (user_id, group_id, user_pending)
' . str_replace('{' . strtoupper($group) . '}', $group_id . ', 0', $select_query);

View File

@ -698,22 +698,22 @@ function phpbb_convert_authentication($mode)
if ($mode == 'start')
{
user_group_auth('guests', 'SELECT user_id, {GUESTS} FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS);
user_group_auth('registered', 'SELECT user_id, {REGISTERED} FROM ' . USERS_TABLE . ' WHERE user_id <> ' . ANONYMOUS);
user_group_auth('guests', 'SELECT user_id, {GUESTS} FROM ' . USERS_TABLE . ' WHERE user_id = ' . ANONYMOUS, false);
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';
user_group_auth('administrators', $auth_sql);
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';
user_group_auth('global_moderators', $auth_sql);
user_group_auth('global_moderators', $auth_sql, true);
}
else if ($mode == 'first')
{

View File

@ -407,7 +407,7 @@ class install_convert extends module
else
{
$src_dbpasswd = htmlspecialchars_decode($src_dbpasswd);
$connect_test = connect_check_db(true, $error, $available_dbms[$src_dbms], false, $src_dbhost, $src_dbuser, $src_dbpasswd, $src_dbname, $src_dbport, ($src_dbms == $dbms) ? false : true);
$connect_test = connect_check_db(true, $error, $available_dbms[$src_dbms], $src_table_prefix, $src_dbhost, $src_dbuser, $src_dbpasswd, $src_dbname, $src_dbport, true, ($src_dbms == $dbms) ? false : true);
}
// The forum prefix of the old and the new forum can only be the same if two different databases are used.
@ -421,7 +421,7 @@ class install_convert extends module
{
// initiate database connection to old db if old and new db differ
global $src_db, $same_db;
$src_db = $same_db = null;
$src_db = $same_db = false;
if ($src_dbms != $dbms || $src_dbhost != $dbhost || $src_dbport != $dbport || $src_dbname != $dbname || $src_dbuser != $dbuser)
{
@ -432,7 +432,14 @@ class install_convert extends module
}
else
{
$src_db = &$db;
if (version_compare(PHP_VERSION, '5.0.0-dev', '<'))
{
$src_db = &$db;
}
else
{
$src_db = $db;
}
$same_db = true;
}
@ -660,7 +667,14 @@ class install_convert extends module
}
else
{
$src_db = &$db;
if (version_compare(PHP_VERSION, '5.0.0-dev', '<'))
{
$src_db = &$db;
}
else
{
$src_db = $db;
}
$same_db = true;
}