aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornikrou <nikrou@piwigo.org>2010-06-09 20:26:47 +0000
committernikrou <nikrou@piwigo.org>2010-06-09 20:26:47 +0000
commita59d15b7b68e86b8d51b77b4b53e4f2e83b273a3 (patch)
tree249d1ba514079e709a0010087e2192e71bf9ec18
parent54fc109f97284a40cba84b131fcc5948e503bbac (diff)
Fix bug 1722 : PosgtreSQL wants all fields in select to be in Group by clause
or agregate function Fix issue for lambda function (incorrect number of params) merge from trunk. git-svn-id: http://piwigo.org/svn/branches/2.1@6511 68402e56-0260-453c-a942-63ccdbb3a9ee
-rw-r--r--include/config_default.inc.php4
-rw-r--r--include/dblayer/functions_pgsql.inc.php8
-rw-r--r--include/functions_user.inc.php30
3 files changed, 30 insertions, 12 deletions
diff --git a/include/config_default.inc.php b/include/config_default.inc.php
index f57407945..e0d7b2318 100644
--- a/include/config_default.inc.php
+++ b/include/config_default.inc.php
@@ -514,6 +514,10 @@ $conf['apache_authentication'] = false;
// piwigo_users table.
$conf['users_table'] = $prefixeTable.'users';
+// If you decide to use external authentication
+// change conf below by $conf['external_authentification'] = true;
+$conf['external_authentification'] = false;
+
// Other tables can be changed, if you define associated constants
// Example:
// define('USER_INFOS_TABLE', 'pwg_main'.'user_infos');
diff --git a/include/dblayer/functions_pgsql.inc.php b/include/dblayer/functions_pgsql.inc.php
index 38fcc2ed9..6492e82ef 100644
--- a/include/dblayer/functions_pgsql.inc.php
+++ b/include/dblayer/functions_pgsql.inc.php
@@ -314,7 +314,7 @@ UPDATE '.$tablename.'
pwg_query($query);
}
} // foreach update
- } // if mysql_ver or count<X
+ }
else
{
$all_fields = array_merge($dbfields['primary'], $dbfields['update']);
@@ -326,7 +326,7 @@ CREATE TABLE '.$temporary_tablename.'
pwg_query($query);
mass_inserts($temporary_tablename, $all_fields, $datas);
if ( $flags & MASS_UPDATES_SKIP_EMPTY )
- $func_set = create_function('$s, $t', 'return "$s = IFNULL(t2.$s, '.$tablename.'.$s)";');
+ $func_set = create_function('$s', 'return "$s = NULLIF(t2.$s, '.$tablename.'.$s)";');
else
$func_set = create_function('$s', 'return "$s = t2.$s";');
@@ -343,7 +343,7 @@ FROM '.$temporary_tablename.' AS t2
implode(
"\n AND ",
array_map(
- create_function('$s, $t', 'return "'.$tablename.'.$s = t2.$s";'),
+ create_function('$s', 'return "'.$tablename.'.$s = t2.$s";'),
$dbfields['primary']
)
);
@@ -585,7 +585,7 @@ function pwg_db_get_weekday($date)
}
// my_error returns (or send to standard output) the message concerning the
-// error occured for the last mysql query.
+// error occured for the last pgsql query.
function my_error($header, $die)
{
$error = '[pgsql error]'.pg_last_error()."\n";
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php
index 3ba596633..aa35539d6 100644
--- a/include/functions_user.inc.php
+++ b/include/functions_user.inc.php
@@ -290,26 +290,40 @@ SELECT ';
$row = pwg_db_fetch_assoc(pwg_query($query));
- // retrieve additional user data
+ // retrieve user info
$query = '
SELECT
- COUNT(1) AS counter,
ui.*,
uc.*,
t.name AS theme_name
FROM '.USER_INFOS_TABLE.' AS ui
LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
- WHERE ui.user_id = \''.$user_id.'\'
- GROUP BY ui.user_id
+ WHERE ui.user_id = '.$user_id.'
;';
+
$result = pwg_query($query);
$user_infos_row = pwg_db_fetch_assoc($result);
- if (!isset($user_infos_row['counter']) or 0 == $user_infos_row['counter']) {
- create_user_infos($user_id);
+
+ // retrieve additional user data ?
+ if ($conf['external_authentification'])
+ {
+ $query = '
+SELECT
+ COUNT(1) AS counter,
+ FROM '.USER_INFOS_TABLE.' AS ui
+ LEFT JOIN '.USER_CACHE_TABLE.' AS uc ON ui.user_id = uc.user_id
+ LEFT JOIN '.THEMES_TABLE.' AS t ON t.id = ui.theme
+ WHERE ui.user_id = '.$user_id.'
+ GROUP BY ui.user_id
+;';
+ if (pwg_db_fetch_row(pwg_query($query))!=1)
+ {
+ create_user_infos($user_id);
- $result = pwg_query($query);
- $user_infos_row = pwg_db_fetch_assoc($result);
+ $result = pwg_query($user_info_query);
+ $user_infos_row = pwg_db_fetch_assoc($result);
+ }
}
// then merge basic + additional user data