aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorplegall <plg@piwigo.org>2010-05-23 23:18:59 +0000
committerplegall <plg@piwigo.org>2010-05-23 23:18:59 +0000
commit0786ff3b79727c23650d167f33905a19f56e0c94 (patch)
treee6ed85956dc961ad816ae6a7ec2561326d3c67d4
parent640d9ebccc946c7249654de9e05a432ce5c6b835 (diff)
bug 1683 fixed: as soon as an admin modifies the admin>conf>options>guest settings, registration is broken. This is because user_infos.theme/language are emptied (while they should not).
I have also added an "automatic repair" piece of code in get_default_user_info function. This piece of code should be removed for 2.2 with the appropriate migration task. git-svn-id: http://piwigo.org/svn/branches/2.1@6311 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--include/functions_user.inc.php41
-rw-r--r--profile.php2
2 files changed, 43 insertions, 0 deletions
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index 4d755c445..b8922ffec 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -796,6 +796,47 @@ function get_default_user_info($convert_str = true)
unset($cache['default_user']['user_id']);
unset($cache['default_user']['status']);
unset($cache['default_user']['registration_date']);
+
+ // theme and language fields may be null in the database (see
+ // bug:1683) This is absolutely not nice to have this code in this
+ // very place, but it avoids a complexe upgrade with an "automatic
+ // fix" in the database => this code should be removed after branch
+ // 2.1 if a migration tasks performs the job the same way
+ if (empty($cache['default_user']['theme']))
+ {
+ mass_updates(
+ USER_INFOS_TABLE,
+ array(
+ 'primary' => array('user_id'),
+ 'update' => array('theme')
+ ),
+ array(
+ array(
+ 'user_id' => $conf['default_user_id'],
+ 'theme' => PHPWG_DEFAULT_TEMPLATE
+ )
+ )
+ );
+ $cache['default_user']['theme'] = PHPWG_DEFAULT_TEMPLATE;
+ }
+
+ if (empty($cache['default_user']['language']))
+ {
+ mass_updates(
+ USER_INFOS_TABLE,
+ array(
+ 'primary' => array('user_id'),
+ 'update' => array('language')
+ ),
+ array(
+ array(
+ 'user_id' => $conf['default_user_id'],
+ 'language' => PHPWG_DEFAULT_LANGUAGE
+ )
+ )
+ );
+ $cache['default_user']['language'] = PHPWG_DEFAULT_LANGUAGE;
+ }
}
}
diff --git a/profile.php b/profile.php
index 8a36d131c..fbbe46df1 100644
--- a/profile.php
+++ b/profile.php
@@ -105,6 +105,8 @@ function save_profile_from_post($userdata, &$errors)
$_POST['theme'],
$_POST['language']
);
+ $_POST['theme'] = get_default_theme();
+ $_POST['language'] = get_default_language();
}
if ($conf['allow_user_customization'] or defined('IN_ADMIN'))